There are several problems with the current version of Escrow contract
ibaEscrow - let's rename this to dabEscrow (dApp Builder Escrow)
There seems to be a HUGE error in refund method because it does not check the current status of the bid. It looks like buyer can call this method numerous times after the expiration of limited contract and each time he will be receiving the refund equal to the price of the contract (as long as there are any funs in the Escrow contract). Hm...
In refund method the oracle should not receive the fee (i.e. all the fee should go to the buyer). This is because:
In these scenarios oracle does nothing and should not receive the fee
we need to prevent abuse of escrow contracts where Oracles get lots of fee without doing anything
See specification here
development of smart contract UI/UX necessary to create a new structure in the contract (new instance of the dApp)