working on utilizing full polymorphism
fixes to previous bugs