Now theoretically supporting all the operations