try {
Class[] cArgsClasses={IPerson.class,UserProfile.class,IUserLayoutStore.class};
Constructor c=coreUserLayoutManagerImpl.getConstructor(cArgsClasses);
Object[] cArgs={person,profile,UserLayoutStoreFactory.getUserLayoutStoreImpl()};
IUserLayoutManager ulm = (IUserLayoutManager)c.newInstance(cArgs);
ulm.addLayoutEventListener(new StatsRecorderLayoutEventListener(person, profile));
// Wrap the implementation to provide lookup by fname
// support which basically merges a non-persisted channel
// into the layout
IUserLayoutManager ulmWrapper = new TransientUserLayoutManagerWrapper(ulm);