Add more test and documentation