Added curried func support, revamped method descovery