Finished 2A, need to add file output and do some benchmarking