added promise support, animate library