Push out signal handling to out of this lib