Mostly refactoring

* PlanActivity was refactored and uses annotations
* Added minimal doc in some places
* Extracted many methods
* Simplified (better naming etc) some stuff