implement ProgramStorage class