add box api gems, refactor box api