Added high level code flow