ported a bunch of things over to angular