Write some generic methods
Merge remote-tracking branch 'SelfStudy/master'