reworked to Angular