code from Angular JS Developer Guide Conceptual Overview (@see https://code.angularjs.org/1.2.26/docs/guide/concepts)