should probably validate the supplied types to only accept what we actually expect and raise a friendly error if its an unsupported type?