legacy software systems