more implementations, working up through transformations.t