updated with latest fixes/improvements