designing-robust-classes