Added general program structure