re-factored tests into separate module