Extract the addition implmentation

Use internal implementation for adding new items as subclasses
do need to override it without loosing the events. This will allow
for more robust implementation of nested lists (dir structires).