add test module and complete the first draft version