program re-structured