todo: rewrite registration to use custom user