manual registration implementation