aside: we should use some sort of logging library since most people won't like a library printing randomly to stdout.