a little explanation + make it closer to original