turn some fields into properties for better encapsulation. Draw methods takes a ref for better proformance.