loads of cahnges to complete model refactor and allow end users to adjust max atoms per core on a population level, or a model level