@Override
    public List<Message> draft(final String key, final Object... arguments) {
        if (this.base.isString(key))
            return super.draft(this.base.getString(key), arguments);

        if (!this.base.isList(key)) return Collections.emptyList();

        final List<Message> messages = new ArrayList<Message>();
        for (final String item : this.base.getStringList(key)) {
            if (item == null) continue;

            final Message.Factory factory = Message.Factory.create(item, arguments);
            if (this.timestamp) factory.timestamp();
            messages.add(factory.build());
        }
        return messages;
    }