introduce the auto_push concern
Closes #32