added interfaces and made all the classes to implement it
added interfaces and made all the classes to implement it