Reification, polymorphism and reuse | Synapse