contains functionality for all the ops