New implementation, working, with iterations, external input & output file support, etc.