tidy up with implicits to make things easier & clearer