public void work(){
        if(!isDragged){

            if(!isUnderGroundLevel()){
                velocity.y += (termVelocity-velocity.y)*acceleration;
            }
            else if(isUnderGroundLevel()){
                velocity.y *= -1*bounceFactor.y;
                position.y = Constants.ScreenY - 2*radius;
                velocity.x *= bounceFactor.x;
            }

            if(position.x + 2*radius > Constants.ScreenY){
                velocity.x *= -1*bounceFactor.x;
                velocity.y *= bounceFactor.y;
                position.x = Constants.ScreenX - 2*radius;
            }
            else if(position.x < 0){
                velocity.x *= -1*bounceFactor.x;
                velocity.y *= bounceFactor.y;
                position.x = 0;
            }

            position.x += velocity.x;
            position.y += velocity.y;
        }

    }