update draft with improved unit tests