much better character physics