Review and fix block implementations

Let's not do anything on a per-entity type basis. Let's find general way of implementing this.