Refactor Code
Fix bug where collectable could not be collected
Merge with origin