fix opts bug, add `extend`
tests not passing