imperfect design