error return a keyword, does not set an atom anymore
draft for #8, continued