rework own compiler and linker