added support for type-safe separator