uses forEach + little things