Collection of Object Oriented Design Concepts and Thought process