     // Intenral method that adds a components to this entity
     private func internalAddComponent(component: GPComponent)
     {
-        self.components += component;
+        self._components += component;
     }
     
     // Internal method that removes components from this entity
     private func internalRemoveComponent(component: GPComponent)
     {
-        self.components -= component;
+        self._components -= component;
     }
     
     // Returns whether the entity has the given component type inside of it
     func hasComponentType(type: GPComponent.Type) -> Bool
     {
-        for comp in self.components
+        for comp in self._components
         {
             if(comp.isKindOfClass(type))
             {

class GPEntity: NSObject
{
    // The internal list of components for this entity
    private var components : [GPComponent] = [];
    
    // The unique identifier for this entity
    var id = 0;
    // A bitmask field used to quickly describe the type of this entity
    var type = 0;
    
    // A node that is associated with this entity
    var node : SKNode;
    
    // The game scene that owns this GPEntity instance
    var gameScene : GPGameScene?;
    
    init(_ node : SKNode)
    {
        self.node = node;
        
        super.init();
    }

    {
        var i:Int = 0;
        
        while(i < self._components.count)
        {
            if(self._components[i].isKindOfClass(type))
            {
                self._components.removeAtIndex(i);
            }
            else
            {
