Full working version - Before clean and comment