small optim
small changes