finished tutorial as-is