A Comparison of Object-Oriented Programming Languages