refactored the reject and push methods