simplified and improved documentation