ENH: Infrastructure for generic transforms

Still need to work on the GetValue() function