not fixed full code