big changes, add comment, modify styles and structure