WIP: Add Awaiter abstract class and its implementation