update comments
use get instead of TryGetValue
simplified brick state construction
optimized away the separate referrer hashmap by putting it into the value table, invalid bricks can not have referrer