multimethods; tighten up