support empty lines