private void checkAndAddMethod(SootMethod method, SootClass baseClass) {
		AndroidMethod am = new AndroidMethod(method);
		
		// Do not call system methods
		if (am.getClassName().startsWith("android.")
				|| am.getClassName().startsWith("java."))
			return;

		// Skip empty methods
		if (method.isConcrete() && isEmpty(method.retrieveActiveBody()))
			return;
			
		boolean isNew;
		if (this.callbackMethods.containsKey(baseClass.getName()))
			isNew = this.callbackMethods.get(baseClass.getName()).add(am);
		else {
			Set<AndroidMethod> methods = new HashSet<AndroidMethod>();
			isNew = methods.add(am);
			this.callbackMethods.put(baseClass.getName(), methods);
		}
			
		if (isNew)
			if (this.callbackWorklist.containsKey(baseClass.getName()))
					this.callbackWorklist.get(baseClass.getName()).add(am);
			else {
				Set<AndroidMethod> methods = new HashSet<AndroidMethod>();
				isNew = methods.add(am);
				this.callbackWorklist.put(baseClass.getName(), methods);
			}
	}