works for the most part. c++ is most likely best tool for the job