complete all functionalities; update package.json;
add test files