Using ISpecification (from the Ardalis.Specification package) in the Core layer, doesn't cause the tight coupling to a library? I think it's adding tight coupling to a specific library, and it violates OOP principles and impacts future development on it.