added some stuff that i dont understand yet