Add methods to remove/add items

Also make the view types public and add some null check
Merge remote-tracking branch 'origin/master'