OO design for Functions...