split ACO algorithm in a mixin class
introduce a class to read shifts