-- inital upload with a few changes