move where some row-handling templates are specialised from the struct to the method, simplify some function template calls