Some improvements and experimentation must be cleaned
format the code :D