add push and pull patch functionality