working through the Hartl tutorial