Rework design to separate authentication logic
Rework design to separate authentication logic