update code to work for all basic scenarios now