tested against transform beating it
better interface