initial commit

need to factor code a lot