untabify
create spec
fix bugs found by spec
add doc