Manual controller based validation + view + refactorings