Move register method into retain

This simplifies the external API as register was basically a form of retain.