add basic framework and build system