the problem is the documentation is not clear and does not have these important information, and sometimes reimplementing function before thinking about the best practice or a good practice at least, this will make u reimplement it and this is pain in the a** because u need to finish ur project at specific time.