finish code now trying to think about tests