Add a some tests, restructure code