some OOP enhatchements