Major overhaul to use Angular