Add system and macro-system
Simplify
Merge branch 'master' into feature/systems