first primitive version without effects