blocking tests and some design changes