first primitive version