mostly fleshed out, needs a run or two