We show that the traditional notion of superposition as used for supporting parallel program design can subsume both composition and refinement relationships when non-deterministic behaviour of action-based systems is considered. For that purpose, we rely on a categorical formalisation of program design in the language CommUnity that we are also using for addressing architectural concerns.