separate benchmark in another package and clean more code