timing and better errors