can produce same result as original work, might be wrong