Cleaned up cake pattern and restricted it a bit - overall it's more clear now.
Some code cleanup and renaming.
User rest api is fixed - was throwing npe because of wrong init order.