refactor and two new hard blocks