this ia self learning tutorial from github. nothing serious.