First (OfflineUser-) part of #9, also improves performance a bit