modified register API