reorganized into utilities and added noncvx variables