The difference between procedural and object-oriented programming