Refactoring base descriptor class