public static Message process(Message m) throws JSONException{
		Map<String,Object> msg = new HashMap<String,Object>();
		try{
			if(m.containsKey("isRegistration") && m.get("isRegistration") != null && m.get("isRegistration").equalsIgnoreCase("YES")){
				addClient(m);
				msg.put("STATUS",Constants.SUCCESS);
				return new Message(msg);
			}else if(m.containsKey(Constants.MESSAGEBUS_COMMAND) && m.get(Constants.MESSAGEBUS_COMMAND).equalsIgnoreCase(Constants.FETCH_MESSAGE)){
				msg.put("STATUS",Constants.SUCCESS);
				msg.put(Constants.MESSAGE_LIST,MessageUtil.stringify(MBusQueueFactory.getQueue(m.topic()).fetch(2)));
				return new Message(msg);
			}else{
				//Adding only message not other headers
				MBusQueueFactory.getQueue(m.topic()).add(new Message(m.get(Constants.MESSAGE)));
				MessageHandler mh = new MessageHandler(m,clientStore.get(m.topic()));
				mh.sendMessage();
				msg.put("STATUS",Constants.SUCCESS);
				return new Message(msg);
			}
		}catch(QueueNotFoundException ex){
			msg.put("STATUS",Constants.ERROR);
			msg.put(Constants.MESSAGE, ex.getMessage());
			return new Message(msg);
		}
	}