almost finished the-state-of-art part