Some Refactor and Duplicating users function COMPLETE