Restructured to improve usability and style