Refactored to pass jshin