implemented exits