Improved extend method