removing hoops implemented
added abstraction for data