refactoring: independant view controllers