rename substitution method to end with a bang because it's mutative; DRY up methods shared by String and Array using method_missing