I like this! It's a very nice abstraction :)