Implemented Environment and Template classes, which introduce abstraction layer of template system. Environment provides template in-memory caching