feat(modules): add "register" module type