refactor backbone implementation