pretty much copy from peco/peco
commit initial version