Program fully working -- next will refactor.