Extending the Useful Life of Legacy Applications