implement print, enhanced scan, updated makefile