Add go and c implementation