more code about blocks