introduce Atom class