updated with fixes