added exchange and more tests