[DO NOT MERGER] Draft of scheme generation

@roman-mazur just review it and say am I moving in the right direction, please
2 spaces before `implements`