Clean up & +comments to templ.hierarchy, implement observer pattern