well this doesn't work but i'll fix it later