[BREAKING] Rewrote API