Add tests and complete controllers

Add tests and complete controllers and models work