refactoring circle model; adding more comments