Refactored internal methods