simplified elaboration a bit