defining S4 objects