added force overwrite flag

promises implementation