fixed cluster update to use block diagonal matrix, added secondary epsilon parameter