function which is not reversible