implementing adding/pushing