implemented repeat