Separated the operations from the implementation