implement .exit, fixes #21