@Around("execution(* ProfileServiceImpl.readProfile(..))")
	public void aroundRead(ProceedingJoinPoint joinPoint) throws Throwable{
 
		ProfileServiceImpl profileService = (ProfileServiceImpl)joinPoint.getTarget();
		Object [] args = joinPoint.getArgs(); 
		System.out.println(args[0] + " reads the profile of " + args[1]);
		
		if (!profileService.getProfileMap().containsKey(args[0])){
			
			System.out.println(args[0] + " does not exist!");  
			return; 
		}
		if(!profileService.getProfileMap().containsKey(args[1])){
			
			System.out.println(args[1] + " does not exist");  
			return; 
		}
		
		boolean okToRead = false; 
		
		for(Profile prof : profileService.getProfileMap().get(args[0])){
			
			if(prof.getUserId() == args[1]){
				
				System.out.println("OK to read the profile."); 
				okToRead = true; 
				break; 
			} 
		}
		if(okToRead){Object result = joinPoint.proceed();}
		else{
			
			System.out.println("Does not have the priviledge to read!"); 
			throw new UnauthorizedException("Does not have the priviledge to read exception!");
		}
	}