this return and generics are never used