this is a final requirement etc