Reverting - templated approach masked the constructor that took a pointer to data