Rewrite in C or not? :D