ch.2 hartl demo app completed