updated structure and promoted to more of a module, added hints for the next operators to implement and more comments and better style