idk
refactored, wrote tests for rational class