updated and enhanced several features