prototype implementation rotation