abstract before state