allow user to choose whether or not they want smoothing
fix center tangent edge-case
remove manual double-buffering