switch to type save constants vs defines