enhance markUp to return promise