fix #33, add basic auto completion support and some cosmetic.