different order of params to register function