3.0 Rewrite using functional react && state management library