added setup and teardown functions