Dynamic function abstraction

No more duplicate interface writing!!