https://blog.hoffnmazor.com/gain-overview/