Strike tests and some major refactoring