much cleaner code with common actions as classes and better navigation/authentication