refactor DrawPattern -- stage 2 - more