adjusted to generic type changes