source code adapter, uses featurehouse as a library, no copy paste all
its source code. from 18815 loc to 888