Argument check
Some tidying up
First benchmark