fixed naming conflict with c keywords
manually merged conflicts