Refactor system description 2

Supercedes #422