separate non-templated functions from header to avoid redundant error with new controllers