Basic functionality in place, need to implement several rules still.