2nd Draft. 

Note: left out http-commons.