inital working version for review

@jarv @feanil 
nit: when referencing these class constants below it's more explicit to use `LifecycleHandler.WAIT_TIME_SECONDS` instead of `self.WAIT_TIME_SECONDS`.