adding integration tests and more!