added 'add' and 'softdelete' functionality