removed polymorphism from data struct