add extended documentation
make ISample an interface

That is just as good and there is no implementation provided anyways.
implement ISample instead of extending
add extended documentation
rename ISampleVector to IVector and ISample to ISampleVector

This makes more sense from a type- and user-perspective