added more tests, with multimethod impl