refactor to bound object to handle broken chains