implemented using bean manager