moved base functions from transform to typed separated class