Fix #3 Add tests