add multi dimension support