Add operator class and tests

This PR depends on #5 before it can be merged.

Also, the tests won't pass until the entity PR is merged.
I mean, where is the order set/updated?