finished section 3.1
merrge from server 3