public void update() {

		String latestTweet = getLatestTweetFrom(twitterQuery);
		
		if (latestTweet == null) {
			return;
		}
		
		clearBoard();
		
		String [] lines = splitToLines(latestTweet, CHARACTERS_IN_LINE - colorCodes.length());

		int noOfLines = lines.length;
		
		if (noOfLines > 0) {
			
			int signIndex = 0;
			int numberOfSigns = (int) Math.ceil((double)noOfLines / LINES_IN_A_SIGN);

			Location signLoc = block.getLocation();
			Block blockBelow;
			if (isOppositeConfiguration == false) {
				blockBelow = block.getWorld().getBlockAt(signLoc.subtract(0, 1, 0));	
			} else {
				blockBelow = block;
			}

			while ((blockBelow.getType() == Material.AIR || blockBelow.getType() == Material.WALL_SIGN) && signIndex < numberOfSigns) {
				
				if (blockBelow.getType() != Material.WALL_SIGN) {
					blockBelow.setType(Material.WALL_SIGN);	
				}

				blockBelow.setData(block.getData());
				Sign nextSign = (Sign) blockBelow.getState();					

				int startLine = signIndex * LINES_IN_A_SIGN;
				
				for (int j = 0; startLine + j < Math.min(lines.length, startLine + LINES_IN_A_SIGN); j++) {
					nextSign.setLine(j, colorCodes + lines[startLine + j]);
				}
				
				nextSign.update();
				
				signIndex++;
				blockBelow = block.getWorld().getBlockAt(signLoc.subtract(0, 1, 0));

			}				
			
		}		
		
	}