JS inheritance done right