changed thread execution to executor service