added first pass at player and character controllers