rethought the entire program