already missed some args, I fear we may need a... shudder... design pattern