Higly influenced by anlif (github.com/anlif)