English translation. Not completed yet