adding a double-checked-locking, thx UnAfraid!