can use Q and W keys on keyboard, misc refactor