Overhaul the Abstract factory pattern.
Tell Prism the programming language *once*.