Refactorated by moving some decisions and logic to the views, also got rid of alot of string dependency.