Getting closer - now having a problem casting component overrides due to generic base types for derived classes