finished prim+enhancement
Revert "finished prim+enhancement"

This reverts commit 4b578bd9f29b696efb275fe728e96b9e3bc15d7d.
Revert "Revert "finished prim+enhancement""

This reverts commit d956743ff98d27ab77329def0b8a5ea17c25a4de.