constructive algorithm