extracted timeline control to its own component