Add initial implementation and build environment