more optimization and better typeclass instance methods.  this is getting interesting.
rewrote 'first' to be smart.