Please see my github for details.