removal of use of template haskell