fixed, and added benchmarking.  Needs more specs