exit implemented