made registration its own module