not confident this is a valid way of defining self transforms, but Ill try