a separate start func