implement "run"