Add inline documentation for codebase to make it easier for contribution. Without documentation, it is hard to understand code without context.