Updated with Interfaces

Updated with Interfaces