now with touch controls (should probably be used separately)