basic character stuff with loads of assumptions

So I just make some wild guesses as how stuff should work, I left in lots of console logging so you can see what's happening.