hybrid (use promise instead of callbacks)

At this phase we are not yet fully utilizing promises,
full promises come soon