switch to C because optimizations!