Added Enum, Promise and fixed the Overload