A bearing puller is a must have for any moped workshop. A lot of people swear by the freezing the crank/heating the bearing method, but this works a lot easier and is way quicker.
So, bearing puller. Sure, it pulls bearings. But swap a few things around and it'll work as a mini bearing press, too.
Here's what you need:
Two piece bearing puller, several different lengths of bolts, a few sockets, and a couple of spacers (lengths of handlebar tubing or exhaust pipe work great.
Place the bearing puller flatside against the underside of the crank, wide enough that it's resting on the crank cheeks, not the bearing itself.
Rub a little bit of grease on the bearing's inner race. Place the bearing onto the shaft and make sure it's level.
Place a socket over the shaft against the bearing. Make sure that the socket's only contact is with the inner race of the bearing. Ensure that you've got plenty of distance between the inside end of the socket and the threads on the shaft. Otherwise, as you torque down the bearing, eventually, the socket will come in contact with the threads and your expensive race crank is now hosed.
Thread on the top half with appropriately length of bolts and it'll look like this.
It doesn't take too much force to press the bearing on. You should be able to hold the wrench in one hand and the puller in the other. Again, as you torque it down keep an eye on where your crank threads are at. If need be, switch out the socket for a spacer and shorter socket halfway through. All in all, it should only take a couple of minutes, tops, to swap out a set of bearings. Super easy, and it doesn't require an over, freezer, flat head screwdriver, and hammer. My bearing puller is from Grainger and ran about $60. Cheaper ones can be had from Harbor Freight. Definitely one of the most handy tools I own.