refactor shapes and sprites to reduce duplicated code and user friendliness

plans:
- [ ] have some blocks that generates circle/polygon shape objects like rects
- [ ] have universal blocks that sketch/fill the shape objects
- [ ] have universal blocks that create new sprites from shape objects 

Please let me know if there's other better approaches