use dynamic randoms, usr auth returns Astr and stores on usr struct, various refactorings