registering functions