initial code for new approach
modified tests