Realized I was doing this wrong; changed to template interface