Add improved documentation