Reimplementing lattice
Add O.join and factor objects