added lowest common ancestor