Improvement #2 simple promise implementation