updated with corrections from @Primigenus