for Hartl's tutorial