moving line-reader etc to modules this is much more rad