Full planning integration into master

Knowledgebase phase of project is complete!
It seems like a lot of code in this class follows the same pattern. Maybe you can extract common method from this code to make it less verbose.