I merged both yours and mine code

I think this pull request will fail, tomorrow we might discuss for it.