cleaned up a few abstractions