It seems like overkill - I was just going to use a function, but I aliased the function type to make it a bit clearer.