seperate the program and the library, program is still raw