restructure: add wasd control