Started Promise implementation

Based on events