Better API (final!)