Upated feature with proper role checks and more documentation