make it self compiling