work in progress but i dont think i can finish it before...