make block more flexible