Improved code, fixed some TODOs

-Created interface