more versatile getter