updated with angular concepts