small refactor and new descriptor and features added