refactored AddElementCommands
some privacy for mutable state
some docs
not that private
renamed specs according to new AddElementCommands structure