Merged with zrj's item.
Fixed some bugs.