let's try being recursive