demo_app portion of hartl tutorial