added gap() options