Moved to using interfaces instead of abstract classes for passed functions in java API.