the only issue you're likely to run into with this approach is leaky abstractions (http://www.joelonsoftware.com/articles/LeakyAbstractions.htm...) which will leak at least some implementation detail out of the container. This can be minimised though.