updated with timer