Check in with unit tests that work and also added functional tests