improve OOP feature