Change interfaces to abstract classes
Merge pull request #460 from kgribov/InterfaceToAbstract

615 Switch listeners from interfaces to [abstract] classes.