speeding up surface updates
merge stuffff