Make these features less implementation-specific