...need still to solve a problem with circular definition dependencies
This implementation draft is now roughly complete