Changing API to pass options instead of defining multimethods.