Improve phrase likelihood calculation for never-before-seen phrases
Use a tree structure to represent phrases (first step towards beam search)
Add method for getting all ancestral cargoes
added beam search. I'm not sure if it helps yet