continue to implement block handling(unfinished)