refactored all viewcontrollers and some ui