New API for standalone use without inheritance

Addresses #1