add multi-cursor support