almost finished base skeleton. there are some logic flaws, but I thought I'd commit it while I am in class