TODO: Will implement with async state