for protection and posting events in setBlock()