implemented cross compilation