Some improvements in design #2.