templates. Breaks some, but needs to be done