Separated into multiple packages, added more APIs