weirdly enough w3schools is still kind of useful