I think OP should start to learn computer science and not just programming languages and frameworks to truly understand the major concepts that he's wrestling with. There are good books and online videos on object-oriented design that would probably be a good place to start.