first less implementation