some improvement and description