Cleaned, simplified api