         }
     }
     
-    open let type: PieceType
-    open let color: Color
-    open var tag: Int!
+    public let type: PieceType
+    public let color: Color
+    public var tag: Int!
     public var hasMoved = false
     
-    lazy var movement : PieceMovement = PieceMovement.pieceMovementForPieceType(pieceType: self.type)
+    var movement : PieceMovement {
+        return PieceMovement.pieceMovementForPieceType(pieceType: self.type)
+    }
 
     public init(type: PieceType, color: Color){
         self.type = type

        self.tag = Piece.lastAssignedTag
    }
    
    func value() -> Double {
        
        switch type {

    
}

public struct Piece {
    
    static private var lastAssignedTag = 0
    
