Given go lang now has full generics support. This package can benefit greatly from it by removing all reflection code.