added atoms implementation