update AbstractGenericBuilder to implement Builder interface