More refactoring - now initialise and populate separately