#21 Adopt Spring framework