code: public Segment createSegment(RemoteBase remoteBase) throws SQLException, IOException {
  		
  		if (connection == null&&entryDAOUtils==null)
  			return null;
  		else
  		{
  			if (remoteBase != null)
  			{
  				String accession = remoteBase.getAccession() + (remoteBase.getVersion() == null ? "" : ("." + remoteBase.getVersion().toString()));
  				if(entryDAOUtils==null)
  				{
  					setEntryDAOUtils(new EntryDAOUtilsImpl(connection));
  				}
  				byte[] subSequence=entryDAOUtils.getSubSequence(accession, remoteBase.getBeginPosition(), (remoteBase.getEndPosition()-remoteBase.getBeginPosition())+1);
  				
  				if(subSequence==null)
  				{
  					throw new SQLException("Invalid Accession "+accession+" , which does not exist in database");
  				}
  				
  				if(remoteBase.getLength()!=subSequence.length)
  				{
  					StringBuilder lcoationString=new StringBuilder();
  					LocationToStringCoverter.renderLocation(lcoationString, remoteBase, false, false);
  					throw new SQLException("invalid Remote Base:"+ lcoationString.toString() +", not within the entry \""+ remoteBase.getAccession()+"\" sequence length");
  				}
  				if(remoteBase.isComplement())
  				{
  					ReverseComplementer reversecomplementer=new ReverseComplementer();
  					return new Segment(remoteBase,reversecomplementer.reverseComplementByte(subSequence));
  				}
  				return new Segment(
  						remoteBase,subSequence);
  
  			}
  		}
  		return null;	
  	}
docs: TODO createSegment for RemoteBase