The following levels of abstraction and points of views are taken from [#!x:901!#], [#!x:902!#], [#!x:903!#], and [#!x:904!#].