Updated based on @jordansissel input