Why do we add a new class, why cannot we just add these functionalities into AtomBase class?