to be written about: https://github.com/s12chung/patterns