private void loadState() {
		try {
			Class.forName("org.sqlite.JDBC");
			Connection conn = DriverManager.getConnection("jdbc:sqlite:"+MineJMX.Persistance );
			Statement stat = conn.createStatement();
			prepTables(stat) ;
			ResultSet rs = stat.executeQuery("SELECT key , type , data FROM metrics ;") ;

			while (rs.next()) {
				log.info("Restoring : " + rs.getString("key") + ":" + rs.getString("type") + ":" + rs.getString("data")) ;
				if(rs.getString("type").equals("server")) {
					this.serverData = ServerData.instanceFromResultSet(rs, this) ;
				} else if(rs.getString("type").equals("player")) {
					PlayerData pd = PlayerData.instanceFromResultSet(rs, this) ;
					this.addPlayer(rs.getString("key"), pd) ;
				} else if(rs.getString("type").equals("block")) {
					BlockData bd = BlockData.instanceFromResultSet(rs, this) ;
					this.addBlock(rs.getString("key"), bd) ;
				} else if(rs.getString("type").equals("npe")) {
					NpeData nd = NpeData.instanceFromResultSet(rs, this);
					this.addNpe(rs.getString("key"), nd);
				} else if(rs.getString("type").equals("performance")) {
					this.serverPerformanceData = ServerPerformanceData.instanceFromResultSet(rs, this) ;
				}
			}
			rs.close();
			conn.close();
		} catch (ClassNotFoundException e) {
			 e.printStackTrace();
		} catch (SQLException e) {
			 e.printStackTrace();
		}
	}