almost finish, need further proof reading