build and compile