accessors now use generics instead of TH