required solution complete