factory + remove benchmark