ast refact 2