add final flag to Promise class
update completion test