this commit was so big he includes a lot of updates