basic OOP concepts are really understandable