Add interface class and some cleanup