Add more tests and basic functionality