Adding some abstractions for 'registration'