added collections, methods, and rewrote templates to support updates