C# OOD and Heavy Math