add a multi feature + small refactor