cote from Practical Object Oriented Design by Sandi Metz