implement basic player control