refactored with promises using q
add experimet