edited to resolve errors, includes full angular file