refactoring & adding accessLevel of the client