https://blog.probooks.com/posts/advanced-tips-customizing-invoicing/