Make bsp safer to use.

Edit

1 Now it is copy-constructable.
2 Called no longer needs to reset itemDiscovered after call items.
Merge pull request #616 from yufanyufan/patch-8

Make bsp safer to use.