some updates courtosey of cm