one day I'll do this correctly