Removed callbacks and added Promise