Work extensively to refactor and flesh out program.