Moves most of logic to views service