css is difficult
cleanup and explanations