Fix #192, add polymorphism module