squash a big commit need to be revised
add ROADMAP and specs
list .gitignore