added Surface argument to Draw
added primitive line operations