fix
Major template method overhoul