Documented and lots of debug statements