functional registering