added definitions and implicits.  need bidi