Reducing cost of size function

Using delegate to create Size struct, passing to private function by
reference. Much fewer constructor calls.