initial commit, originally created by @aknrdureegaesr

extracted from a private repo
fix typos in method- and class names
clean up whitespace and newlines