Upgrade to Spring Framework 4 and polish