use standard sync fn instead of crazy custom thing