push for sync
make use function more clever