works, but still janky :(