Complete register function, edit some core methods