working on the real program