working on prog structure