lengthy explanation