Right now the Lifecycle interface contains methods for obtaining PostConstruct/PreDestory callback information and getting AroundInvoke/AroundTimeout information. The AroundInvoke/AroundTime info applies to Session-based beans, Message Driven beans, and interceptors. While the PostConstruct/PreDestory info applies to any type of bean, interceptors, and AppClient or WebApp. So in order to have common interfaces for accessing common information and to avoid implementing functions that do not apply to a particular type, the Lifecycle interface can be split into two separate interfaces. One for providing methods for PostConstruct/PreDestory callback information and another one for getting the AroundInvoke/AroundTimeout information.