Add my implemention with tests
Add Brandon Haynes' implementation with my tests
Add helper overload for (string -> T) conversion