Add sync and async stages
Add types and reformat