use IDs instead of indexes, because indexes can change while IDs are constant and unique
Merge remote-tracking branch 'yunake/master' into HEAD