Refactored due to dependency loop