Best practice to use Sprites in a game using AndEngine GLES2
===

Currently I am having static reference to all my sprites and loading and initializing them in my OnCreateResource mthod of SimpleBaseGameActivity, But now I have to override onAreaTouched listener on spirtes and the way I can override it while Initializing the Sprite. But I have a static method creating Atlas and Texture Region for every sprite. And I am using these sprites in my scene class and I want to override onAreaTouched there. I can registerTouchArea for that specific sprite in my scene so that can be done But I want to Override OnAreaTouched in a way so that Code reusability can be done.
Here is how I am currently creating and loading sprites.

    defualtCageSprite = createAndLoadSimpleSprite("bg.png", this, 450, 444);
And this is my Method createAndLoadSimpleSprite.

    public static Sprite createAndLoadSimpleSprite(String name,
			SimpleBaseGameActivity activity, int width, int height) {

		BitmapTextureAtlas atlasForBGSprite = new BitmapTextureAtlas(
				activity.getTextureManager(), width, height);
		TextureRegion backgroundSpriteTextureRegion = BitmapTextureAtlasTextureRegionFactory
				.createFromAsset(atlasForBGSprite, activity, name, 0, 0);
		Sprite sprite = new Sprite(0, 0, backgroundSpriteTextureRegion,
				activity.getVertexBufferObjectManager());
		activity.getTextureManager().loadTexture(atlasForBGSprite);

		return sprite;
	}
    
Now How Can I override onAreaTouched for some sprites while not losing the code reusability.