A bunch of useless improvements to Architect

Is there any reason why you used double instead of int? Sorry if the microoptimizations have made the code unreadable, and sorry for the noisy diff. (FYI, the former point is intended :baby:)