add circle function & fix bugs