split out methods into has_FOO() and impl_FOO() pairs