Rework password implementation