using graphics instead of shapes