use multimethods to implement toggleable map options