updated with a start function