We already have a RoundFunction - can we just incorporate all these into that? We could make RoundFunction a base class with the concrete classes based on the data type. That's probably better than making it switch on the type in the evaluate method