fixed register()