use one entry point, no `stats` method