Refactor to handle down/up blocks in one way.