Reversible Computing - Promises and Challenges