Re-ordering code, adding methods for list management and the events that use them