completed warmup part 2 frontend