wait based synchronisation added