add InputContext, make Application an ABC, … for now
some experiments with app structuring