refactored list program controller