refactor to user module and add transform part