smart allocation