should provide `auto`