Methods explained with proper comments