add respond_to_upto mixin