drawing optimization
merge
merge again