Make system Polymorphic