incorporated the virtual functions to irrational