neaten up code, document the purpose of the 2 registration methods