add some error tolerance. 66/70
remove use of optional  and + to allow for error handling at the class level. 66/70