A Concise Guide to Object Orientated Programming