separate features files loading

Moving towards a more modular approach. Currently creating a new runner
means re-implementing all the logic (which would mostly amount to a big
copy-paste).