added new circle class and created new components abstract class