unit test & bug fixes