compiling and linking working