added some tests, they're not done yet though