character controller finished, unless a bit messy