update implementation with adding atom mechanism