added S4 generic for subset