Restructure, better surface area, gc dispose, safe double-dispose