due to compile flag constraints, this needs seperate linkage