Added required fields, tested, changed some names made required more precise