updated character control