Add SignUp part.
Introduce AbstractEntityController and AbstractEntities to DRY out the code.