Implementation
Added documentation
Fix