Implement draft version of build algorithm

using non-existing methods to encapsulate implementation (not exising yet)
Add empty high-level methods
Add log messages