add tests, check for method existence before calling