(complex and detailed