moving the linkers to use marker interfaces instead of enums