tidying up code and new benchmark