>From your description, it seems like you are mixing layers (which will IMO bite you later). I would suggest keeping your components as focused as possible. When working on this type of problem, I create services that manage each of the entities in the domain. I generally separate user authentication from authorization / entitlement.
Here is some pseudo-code to demonstrate what I'm talking about: UserService - userGateway (table gateway e.g. sets of data) - userDAO (manage single object persistence) getUser(username,password) : UserBean ( userDAO.read(UserBean) ); saveUser(UserBean) : Void ( userDAO.save(UserBean) ) getAll() : Query ( userGateway.getAll() ) UserDAO read(UserBean) : UserBean save(UserBean) : Void UserGateway getAll() { select ... from ... return query; } AuthenticationService - UserService (access to the user) - SessionFacade (access to the session) processLogin(username,password) : Boolean { user = UserService.getUser(username,password); return authenticateUser(user); } authenticateUser(UserBean) { log in user. if (loggedIn ) { sessionFacade.setUser(UserBean); } return UserBean; } EntitlementService - UserService - SessionFacade getEntitlements(UserBean) ... In this type of a setup, you could create accessors (setUserFacade/getUserFacade) for each of the composited items and let CS inject them. HTH, Rich Kroll ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Create robust enterprise, web RIAs. Upgrade & integrate Adobe Coldfusion MX7 with Flex 2 http://www.adobe.com/products/coldfusion/flex2/?sdid=RVJP Archive: http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:275081 Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4