Basic mating algo
Added underscore source
Tests expanded