Add more unit test, remove partial functions