added object oriented edition v0.5