removed old implementation