Learning from reproducing computational results: introducing three principles and the Reproduction Package