this is a mess
way easier