circular working, but needed testing.