new program with set and invert!