public void deleteTags(String filePath){
		PictureI picture = findById(filePath);

		if(picture != null){

			try{
				List<? extends TagI> taggs = picture.getTags();
				List<Tag> tags = new ArrayList<Tag>();
				for(TagI t: picture.getTags())
					tags.add((Tag) t);

				beginTransaction();
				for(TagI tag: tags){
					try{
						taggs.remove(tag);

						picture.setTags(taggs);
						List<? extends PictureI> pics =tag.getPictures();
						System.out.print("Ex");
						pics.remove(picture);
						tag.setPictures(pics);
						if(pics.isEmpty()==true)
							tagDao.remove((Tag)tag);
						else
							tagDao.persist((Tag)tag);
						this.persist((Picture) picture);
					}catch(Exception y){
						Log.getLogger().log(Level.SEVERE, "Failed to remove TagI " + tag);
					}


				}

			}catch(Exception y){	
				Log.getLogger().log(Level.INFO, "Couldn't get list of TagIs from Picture " + picture);
			}
			commitTransaction();

		}
	}