https://www.eatos.com/blogpost..../implementing-a-cust