without IO timing part