implemented test runner. added logging. added end to end test