included more test and code