Slight refactor
Much better design + template refactor