added code, submodule and makefile