naive registration implementation