public static UnitOfWork create(Class<?> workClass,TransactionPolicy policyGraph){
		UnitOfWork u = null;
		try {
			Constructor<?> c = workClass.getDeclaredConstructor();
			c.setAccessible(true);
			u = (UnitOfWork) c.newInstance();
			for(Transaction t:policyGraph.getTransaction()){
				if(workClass.getName().equalsIgnoreCase(t.getId())){
					for(Policy polInfo : t.getPolicy()){
						Class<?> policy = Class.forName(polInfo.getId());
						business.policy.Policy bp = (business.policy.Policy) policy.getDeclaredConstructor().newInstance();
						bp.setPolicyInfo(polInfo);
						u.policies.add(bp);
					}
					break;
				}
			}
		} catch (NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException | ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return u;
	}