split ruby science and start replace conditional with polymorphism