Improve the code, soon being re-uploaded