rename inject to chain, throw error if chained function returns falsey value