Finish tests; support for custom empty messages; classes separated to different files