Merging oliver's spring version