implement registration, and corresponding controller