more explicit handling for '$' methods on S4 objects