create profile and edit profile paths
provide authorization with cancan: limit view (links), restrict access to resources, hide options in selects
skip authentication for push
refactoring, extract business logic to models
fix push spec