still retrieving the users is quick weak. need to optimize it