Index: branches/network/src/lib/graphics/Makefile.am
===================================================================
--- branches/network/src/lib/graphics/Makefile.am	(revision 6781)
+++ branches/network/src/lib/graphics/Makefile.am	(revision 6782)
@@ -9,4 +9,5 @@
 			   render2D/render_2d.cc \
 			   render2D/element_2d.cc \
+			   render2D/billboard.cc \
 			   text_engine/text_engine.cc \
 			   text_engine/text.cc \
@@ -21,4 +22,5 @@
 		 render2D/render_2d.h \
 		 render2D/element_2d.h \
+		 render2D/billboard.h \
 		 text_engine/text_engine.h \
 		 text_engine/text.h \
Index: branches/network/src/lib/graphics/effects/lense_flare.cc
===================================================================
--- branches/network/src/lib/graphics/effects/lense_flare.cc	(revision 6781)
+++ branches/network/src/lib/graphics/effects/lense_flare.cc	(revision 6782)
@@ -25,4 +25,5 @@
 #include "texture.h"
 
+#include "render2D/billboard.h"
 
 using namespace std;
@@ -38,5 +39,4 @@
  LenseFlare::LenseFlare(const TiXmlElement* root)
 {
-
   if (root != NULL)
     this->loadParams(root);
@@ -60,5 +60,4 @@
     LoadParam(root, "add-flare-texture", this, LenseFlare, addFlare)
         .describe("adds a lensflare texture to the engine");
-
 }
 
@@ -68,7 +67,5 @@
  */
 bool LenseFlare::init()
-{
-
-}
+{}
 
 
@@ -78,5 +75,5 @@
 bool LenseFlare::activate()
 {
-
+  this->bActivated = true;
 }
 
@@ -87,5 +84,5 @@
 bool LenseFlare::deactivate()
 {
-
+  this->bActivated = false;
 }
 
@@ -103,10 +100,18 @@
  * @param textureName the name of the flare texture
  */
-void addFlare(const char* textureName)
+void LenseFlare::addFlare(const char* textureName)
 {
-  Texture* texture = new Texture (textureName, GL_TEXTURE);
-
-
+  Billboard* bb = new Billboard(NULL);
+  bb->setTexture(textureName);
 }
 
 
+/**
+ * draws the LenseFlares
+ */
+void LenseFlare::draw() const
+{
+  if( !this->bActivated)
+    return;
+
+}
Index: branches/network/src/lib/graphics/effects/lense_flare.h
===================================================================
--- branches/network/src/lib/graphics/effects/lense_flare.h	(revision 6781)
+++ branches/network/src/lib/graphics/effects/lense_flare.h	(revision 6782)
@@ -14,5 +14,5 @@
 class TiXmlElement;
 class Light;
-class Element2D;
+class Billboard;
 
 //! A class that handles LenseFlares. The LenseFlareManager operates on this.
@@ -41,5 +41,5 @@
   private:
     Light*                   lightSource;        //!< reference to the sun (or primary light source)
-    std::vector<Element2D*>  flares;             //!< the flares array
+    std::vector<Billboard*>  flares;             //!< the flares array
 };
 
Index: branches/network/src/lib/graphics/render2D/billboard.cc
===================================================================
--- branches/network/src/lib/graphics/render2D/billboard.cc	(revision 6781)
+++ branches/network/src/lib/graphics/render2D/billboard.cc	(revision 6782)
@@ -11,10 +11,9 @@
 ### File Specific:
    main-programmer: Patrick Boenzli
-   co-programmer: ...
 */
 
 #define DEBUG_SPECIAL_MODULE DEBUG_MODULE_WEAPON
 
-#include "image_entity.h"
+#include "billboard.h"
 
 #include "load_param.h"
@@ -25,4 +24,5 @@
 #include "glincl.h"
 #include "state.h"
+#include "p_node.h"
 
 
@@ -39,5 +39,7 @@
 {
   this->init();
-  this->loadParams(root);
+
+  if( root)
+    this->loadParams(root);
 }
 
@@ -64,14 +66,16 @@
   this->setSize(GraphicsEngine::getInstance()->getResolutionX()/10.0, GraphicsEngine::getInstance()->getResolutionY()/10.0);
 
-  this->setBindNode(this);
-  this->material = new Material;
+  //this->setBindNode(this);
+  this->material = new Material();
   this->setTexture("pictures/error_texture.png");
 }
 
 
+/**
+ *  load params
+ * @param root TiXmlElement object
+ */
 void Billboard::loadParams(const TiXmlElement* root)
 {
-  PNode::loadParams(root);
-
   LoadParam(root, "texture", this, Billboard, setTexture)
       .describe("the texture-file to load onto the Billboard");
@@ -79,9 +83,4 @@
   LoadParam(root, "size", this, Billboard, setSize)
       .describe("the size of the Billboard in Pixels");
-
-  LoadParam(root, "rotation-speed", this, Billboard, setRotationSpeed)
-      .describe("the Speed with which the Billboard should rotate");
-
-
 }
 
@@ -107,11 +106,11 @@
 
 
-/** this turns on/off the billboarding of this WorldEntity
- *
- * This means that the image will always look in the direction of the Player
+/**
+ * attaches this billboard to a parent
+ * @param pNode node to attach to
  */
-void Billboard::toggleBillboard()
+void Billboard::attachTo(PNode* pNode)
 {
-  this->bBillboarding = !this->bBillboarding;
+  this->source->setParent(pNode);
 }
 
@@ -151,8 +150,8 @@
 {
   glPushMatrix();
+
   glTranslatef(this->getAbsCoor2D().x, this->getAbsCoor2D().y, 0);
+  this->material->select();
 
-  //glRotatef(this->getAbsDir2D(), 0,0,1);
-  this->material->select();
   glBegin(GL_TRIANGLE_STRIP);
   glTexCoord2f(0, 0);
@@ -165,5 +164,5 @@
   glVertex2f(this->getSizeX2D(), this->getSizeY2D());
   glEnd();
+
   glPopMatrix();
-
 }
Index: branches/network/src/lib/graphics/render2D/billboard.h
===================================================================
--- branches/network/src/lib/graphics/render2D/billboard.h	(revision 6781)
+++ branches/network/src/lib/graphics/render2D/billboard.h	(revision 6782)
@@ -7,7 +7,6 @@
 #define _BILLBOARD_H
 
-#include "p_node.h"
+
 #include "element_2d.h"
-#include "event_listener.h"
 
 #include "vector.h"
@@ -32,7 +31,5 @@
     void setSize(float sizeX, float sizeY);
     void setTexture(const char* textureFile);
-    /** @param rotationSpeed the speed at what the crosshair should rotate */
-    void setRotationSpeed(float rotationSpeed) { this->rotationSpeed = rotationSpeed; };
-    void toggleBillboard();
+    void attachTo(PNode* pnode);
 
     virtual void tick(float dt);
