refactor to gccxml