Finished most of blocking 2d code, with simple i/o strategy