refactor: use single _expect() instead of multiple _expectOpt()