Wrote all tests and pass