Basic functionality. 4 kinds of operations, no UI.