updated with addition checks from hw