Nearly done
Add a benchmark