using Pool to make it easier and nicer
trying to really use Pool; segfaulting