many changes : implement statements & expr + add test coverage with `npm test`