canvas split area refactored