more refactoring of user reg; heavy scheiss