https://geshan.com.np/blog/2010/03/3-codeigniter-libraries-that-will-make/