implementing a proper type system for use by the function framework.