works decently with latency, needs G setting