Some classes changed to interface

Some classes change to interface and some minor changes - one partial
implementation of interface