Register is working although really, really messy.
registration working, but everything needs a refactor