transforms return new types, fixes #3