Pull request for Issue665

@dretrex 
@davidChevrier 
For consistency, can you put the code such that headers follow the format of:
1) public
2) protected
3) private
It makes things way easier to read.