try to make the c less leaky