added many api changes