Restrucutred code a bit
Raise ViewError whenever something is wrong
ff
Logical split
More logic
Remove debug prints
Avoid global site
More logical class hierarchy
No global site