added object oriented feature