added a generic type