added an interface to the api that allows custom declarations of methods (aside from the callback annotation), meant to make wrapping cc peripherals easier