Add descriptions and clean code