logic completed