clean up and added documentation
Getting rid of EVIL eval