added abstact class
more code blocks and less examples