removed component interface and replaced it with initializing, destroyable and transactional