fixed code, add more docs.
test case.
minil buidl