diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..8fcb961
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,106 @@
+##### 1.0.1 (2018-02-01)
+
+- Improved JPEG format support
+- Fixed README
+
+##### 1.0.0 (2018-01-24)
+
+- Changed Development Status to Stable
+
+##### 0.6.0 (2018-01-09)
+
+- Changed Development Status to Beta
+- Changed data.json structure
+- Improved docstrings
+
+##### 0.5.1 (2018-01-07)
+
+- Added changelog (See CHANGELOG.md)
+
+##### 0.5.0 (2018-01-07)
+
+- Added functions supported_types(), supported_extensions(), supported_mimes() (See README par. "In Use")
+- Divided type "image" into "raster-image", "raw-image", "vector-image"
+- Implemented 3D Image formats support
+- Added system formats support
+- Updated README
+
+##### 0.4.4 (2018-01-06)
+
+- Required Python version: 3.1 or higher
+- Updated speed test results (See README par. "Tests")
+- Updated setup.py
+
+##### 0.4.3 (2018-01-05)
+
+- Added folder with examples
+- Improved README
+
+##### 0.4.2 (2018-01-05)
+
+- Added Font formats support
+- Added System formats support
+- Improved various formats support
+- Improved speed test
+
+##### 0.4.1 (2018-01-05)
+
+- Minor refactoring
+- Improved speed test
+- Updated README
+
+##### 0.4.0 (2018-01-04)
+
+- Complete API refactoring (See README par. "In Use")
+- Added tests examples
+- Updated README
+
+##### 0.3.6 (2018-01-04)
+
+- Added Audio formats support
+
+##### 0.3.5 (2018-01-03)
+
+- Improved output: the sequence of elements in the output data now depends on the length of the signature: first element will be with the longest signature, last element will be with the shortest signature
+- Improved Video formats support
+
+##### 0.3.4 (2018-01-03)
+
+- Updated README
+
+##### 0.3.3 (2018-01-02)
+
+- Implemented iWork formats support
+- Improved OpenDocument formats support
+- Increased number of readable bytes up to 128
+- Updated README
+
+##### 0.3.2 (2018-01-02)
+
+- Implemented Font formats support
+
+##### 0.3.1 (2018-01-02)
+
+- Implemented Raw Image formats support
+
+##### 0.3.0 (2017-12-31)
+
+- Set "output" argument as optional ("extension" value by default)
+- Added context managers
+
+##### 0.2.1 (2017-12-30)
+
+- Added various formats support
+
+##### 0.2.0 (2017-12-29)
+
+- Implemented MIME types support
+- Added opportunity to work with array of bytes
+- Updated list of supported extensions
+- Updated README.rst
+
+##### 0.1.0.1 (2017-12-28)
+
+- Fixed syntax error in README.rst
+
+##### 0.1.0 (2017-12-27)
\ No newline at end of file
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..c25c8db
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017 Mykyta Paliienko
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/MANIFEST.in b/MANIFEST.in
index 9fc1885..90e087e 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -1,2 +1,2 @@
-include fleep/data.json
+include fleep/data.json
 include README.rst
\ No newline at end of file
diff --git a/PKG-INFO b/PKG-INFO
deleted file mode 100644
index b8b74ac..0000000
--- a/PKG-INFO
+++ /dev/null
@@ -1,290 +0,0 @@
-Metadata-Version: 1.2
-Name: fleep
-Version: 1.0.1
-Summary: File format determination library
-Home-page: https://github.com/floyernick/fleep
-Author: Mykyta Paliienko
-Author-email: floyernick@gmail.com
-License: MIT
-Description-Content-Type: UNKNOWN
-Description: fleep
-        =====
-        
-        File format determination library for Python
-        
-        |pypi version| |python version| |license|
-        
-        Getting Started
-        ---------------
-        
-        **fleep** is a library that determines file format by file signature (also known as "magic number").
-        
-        Installation
-        ------------
-        
-        You can install fleep using *pip*. Simply run in CLI:
-        
-        ::
-        
-            pip install fleep
-        
-        Requirements
-        ------------
-        
-        -  Python >= 3.1
-        
-        In Use
-        ------
-        
-        fleep has main function *get()* that determines file format. It takes byte sequence (128 bytes are enough) as an argument and returns an instance of class *Info* with the following arguments:
-        
-        -  *type* -> list of suitable file types
-        -  *extension* -> list of suitable file extensions
-        -  *mime* -> list of suitable file MIME types
-        
-        You may presume that first element in list will be the most suitable.
-        
-        Also an instance of class *Info* has the following methods:
-        
-        -  *type_matches()* -> checks if file type matches with given type as an argument
-        -  *extension_matches()* -> checks if file extension matches with given extension as an argument
-        -  *mime_matches()* -> checks if file MIME type matches with given MIME type as an argument
-        
-        There are 3 more functions:
-        
-        -  *supported_types()* -> returns a list of supported file types
-        -  *supported_extensions()* -> returns a list of supported file extensions
-        -  *supported_mimes()* -> returns a list of supported file MIME types
-        
-        Examples
-        --------
-        
-        You can find examples in *examples* folder. There is a simple example:
-        
-        .. code:: python
-        
-            import fleep
-        
-            with open("png_image", "rb") as file:
-                info = fleep.get(file.read(128))
-        
-            print(info.type)  # prints ['raster-image']
-            print(info.extension)  # prints ['png']
-            print(info.mime)  # prints ['image/png']
-        
-            print(info.type_matches("raster-image"))  # prints True
-            print(info.extension_matches("gif"))  # prints False
-            print(info.mime_matches("image/png"))  # prints True
-        
-        Tests
-        -----
-        
-        You can find tests in *tests* folder. There are results of speed test:
-        
-        **Workstation**
-        
-        -  Python 3.6 x64 bit
-        -  Windows 10 Home x64 bit
-        -  Intel Pentium G4620 3.70GHz
-        -  Kingston DDR4-2400 8192MB
-        -  Kingston SSD 120GB 550MB/s
-        
-        **Results**
-        
-        *Note:* 0.0012345 -> time in seconds
-        
-        +-----------+---------+-----------+-----------+
-        | Iteration | Minimum | Maximum   | Average   |
-        +===========+=========+===========+===========+
-        | 1         | 0.0     | 0.0005312 | 0.0000851 |
-        +-----------+---------+-----------+-----------+
-        | 2         | 0.0     | 0.0005360 | 0.0000858 |
-        +-----------+---------+-----------+-----------+
-        | 3         | 0.0     | 0.0005236 | 0.0000837 |
-        +-----------+---------+-----------+-----------+
-        | 4         | 0.0     | 0.0005035 | 0.0000833 |
-        +-----------+---------+-----------+-----------+
-        | 5         | 0.0     | 0.0005295 | 0.0000835 |
-        +-----------+---------+-----------+-----------+
-        
-        Supported Formats
-        -----------------
-        
-        There is a list of supported formats (in alphabetical order):
-        
-        *Raster Image:*
-        
-        -  BMP
-        -  GIF
-        -  ICO
-        -  JP2
-        -  JPEG
-        -  PNG
-        -  PSD
-        -  TIFF
-        -  WEBP
-        
-        *Raw Image:*
-        
-        -  ARW
-        -  CR2
-        -  CRW
-        -  DNG
-        -  ERF
-        -  NEF
-        -  NRW
-        -  ORF
-        -  PEF
-        -  RAF
-        -  RAW
-        -  RW2
-        -  SRW
-        -  X3F
-        
-        *Vector Image:*
-        
-        -  AI
-        -  EPS
-        
-        *3D Image:*
-        
-        -  C4D
-        -  FBX
-        -  MA
-        -  MS3D
-        -  MTL
-        -  OBJ
-        -  PLY
-        -  WRL
-        -  X3D
-        -  XSI
-        
-        *Audio:*
-        
-        -  AAC
-        -  AC3
-        -  AIFF
-        -  AMR
-        -  AU
-        -  FLAC
-        -  M4A
-        -  MIDI
-        -  MKA
-        -  MP3
-        -  OGA
-        -  RA
-        -  VOC
-        -  WAV
-        -  WMA
-        
-        *Video:*
-        
-        -  3G2
-        -  3GP
-        -  ASF
-        -  AVI
-        -  FLV
-        -  M4V
-        -  MKV
-        -  MOV
-        -  MP4
-        -  MPG
-        -  OGV
-        -  SWF
-        -  VOB
-        -  WEBM
-        -  WMV
-        
-        *Document:*
-        
-        -  DOC
-        -  DOCX
-        -  EPUB
-        -  KEY
-        -  NUMBERS
-        -  ODP
-        -  ODS
-        -  ODT
-        -  PAGES
-        -  PDF
-        -  PPS
-        -  PPT
-        -  PPTX
-        -  RTF
-        -  XLS
-        -  XLSX
-        -  XML
-        
-        *Archive:*
-        
-        -  7Z
-        -  DMG
-        -  GZ
-        -  ISO
-        -  RAR
-        -  TAR.Z
-        -  ZIP
-        
-        *Executable:*
-        
-        -  COM
-        -  EXE
-        -  JAR
-        
-        *Font:*
-        
-        -  OTF
-        -  TTF
-        -  WOFF
-        -  WOFF2
-        
-        *System:*
-        
-        -  CAB
-        -  CAT
-        -  DLL
-        -  DRV
-        -  REG
-        -  SDB
-        -  SYS
-        
-        *Database:*
-        
-        -  SQLITE
-        
-        Changelog
-        ---------
-        
-        You can find changelog in *CHANGELOG.md* file.
-        
-        License
-        -------
-        
-        This project is licensed under the *MIT License*.
-        
-        Authors
-        -------
-        
-        **Mykyta Paliienko** - `GitHub profile`_
-        
-        .. _GitHub profile: https://github.com/floyernick
-        
-        .. |pypi version| image:: https://img.shields.io/badge/pypi-v1.0.1-blue.svg
-           :target: https://pypi.python.org/pypi/fleep
-        .. |python version| image:: https://img.shields.io/badge/python-3-blue.svg
-        .. |license| image:: https://img.shields.io/badge/license-MIT-blue.svg
-           :target: https://github.com/floyernick/fleep/blob/master/LICENSE
-Platform: UNKNOWN
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: MIT License
-Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python :: 3.1
-Classifier: Programming Language :: Python :: 3.2
-Classifier: Programming Language :: Python :: 3.3
-Classifier: Programming Language :: Python :: 3.4
-Classifier: Programming Language :: Python :: 3.5
-Classifier: Programming Language :: Python :: 3.6
-Classifier: Programming Language :: Python :: 3.7
-Classifier: Topic :: Software Development
-Requires-Python: >=3.1
diff --git a/README.rst b/README.rst
index f8a44b0..c1d218c 100644
--- a/README.rst
+++ b/README.rst
@@ -1,267 +1,267 @@
-fleep
-=====
-
-File format determination library for Python
-
-|pypi version| |python version| |license|
-
-Getting Started
----------------
-
-**fleep** is a library that determines file format by file signature (also known as "magic number").
-
-Installation
-------------
-
-You can install fleep using *pip*. Simply run in CLI:
-
-::
-
-    pip install fleep
-
-Requirements
-------------
-
--  Python >= 3.1
-
-In Use
-------
-
-fleep has main function *get()* that determines file format. It takes byte sequence (128 bytes are enough) as an argument and returns an instance of class *Info* with the following arguments:
-
--  *type* -> list of suitable file types
--  *extension* -> list of suitable file extensions
--  *mime* -> list of suitable file MIME types
-
-You may presume that first element in list will be the most suitable.
-
-Also an instance of class *Info* has the following methods:
-
--  *type_matches()* -> checks if file type matches with given type as an argument
--  *extension_matches()* -> checks if file extension matches with given extension as an argument
--  *mime_matches()* -> checks if file MIME type matches with given MIME type as an argument
-
-There are 3 more functions:
-
--  *supported_types()* -> returns a list of supported file types
--  *supported_extensions()* -> returns a list of supported file extensions
--  *supported_mimes()* -> returns a list of supported file MIME types
-
-Examples
---------
-
-You can find examples in *examples* folder. There is a simple example:
-
-.. code:: python
-
-    import fleep
-
-    with open("png_image", "rb") as file:
-        info = fleep.get(file.read(128))
-
-    print(info.type)  # prints ['raster-image']
-    print(info.extension)  # prints ['png']
-    print(info.mime)  # prints ['image/png']
-
-    print(info.type_matches("raster-image"))  # prints True
-    print(info.extension_matches("gif"))  # prints False
-    print(info.mime_matches("image/png"))  # prints True
-
-Tests
------
-
-You can find tests in *tests* folder. There are results of speed test:
-
-**Workstation**
-
--  Python 3.6 x64 bit
--  Windows 10 Home x64 bit
--  Intel Pentium G4620 3.70GHz
--  Kingston DDR4-2400 8192MB
--  Kingston SSD 120GB 550MB/s
-
-**Results**
-
-*Note:* 0.0012345 -> time in seconds
-
-+-----------+---------+-----------+-----------+
-| Iteration | Minimum | Maximum   | Average   |
-+===========+=========+===========+===========+
-| 1         | 0.0     | 0.0005312 | 0.0000851 |
-+-----------+---------+-----------+-----------+
-| 2         | 0.0     | 0.0005360 | 0.0000858 |
-+-----------+---------+-----------+-----------+
-| 3         | 0.0     | 0.0005236 | 0.0000837 |
-+-----------+---------+-----------+-----------+
-| 4         | 0.0     | 0.0005035 | 0.0000833 |
-+-----------+---------+-----------+-----------+
-| 5         | 0.0     | 0.0005295 | 0.0000835 |
-+-----------+---------+-----------+-----------+
-
-Supported Formats
------------------
-
-There is a list of supported formats (in alphabetical order):
-
-*Raster Image:*
-
--  BMP
--  GIF
--  ICO
--  JP2
--  JPEG
--  PNG
--  PSD
--  TIFF
--  WEBP
-
-*Raw Image:*
-
--  ARW
--  CR2
--  CRW
--  DNG
--  ERF
--  NEF
--  NRW
--  ORF
--  PEF
--  RAF
--  RAW
--  RW2
--  SRW
--  X3F
-
-*Vector Image:*
-
--  AI
--  EPS
-
-*3D Image:*
-
--  C4D
--  FBX
--  MA
--  MS3D
--  MTL
--  OBJ
--  PLY
--  WRL
--  X3D
--  XSI
-
-*Audio:*
-
--  AAC
--  AC3
--  AIFF
--  AMR
--  AU
--  FLAC
--  M4A
--  MIDI
--  MKA
--  MP3
--  OGA
--  RA
--  VOC
--  WAV
--  WMA
-
-*Video:*
-
--  3G2
--  3GP
--  ASF
--  AVI
--  FLV
--  M4V
--  MKV
--  MOV
--  MP4
--  MPG
--  OGV
--  SWF
--  VOB
--  WEBM
--  WMV
-
-*Document:*
-
--  DOC
--  DOCX
--  EPUB
--  KEY
--  NUMBERS
--  ODP
--  ODS
--  ODT
--  PAGES
--  PDF
--  PPS
--  PPT
--  PPTX
--  RTF
--  XLS
--  XLSX
--  XML
-
-*Archive:*
-
--  7Z
--  DMG
--  GZ
--  ISO
--  RAR
--  TAR.Z
--  ZIP
-
-*Executable:*
-
--  COM
--  EXE
--  JAR
-
-*Font:*
-
--  OTF
--  TTF
--  WOFF
--  WOFF2
-
-*System:*
-
--  CAB
--  CAT
--  DLL
--  DRV
--  REG
--  SDB
--  SYS
-
-*Database:*
-
--  SQLITE
-
-Changelog
----------
-
-You can find changelog in *CHANGELOG.md* file.
-
-License
--------
-
-This project is licensed under the *MIT License*.
-
-Authors
--------
-
-**Mykyta Paliienko** - `GitHub profile`_
-
-.. _GitHub profile: https://github.com/floyernick
-
-.. |pypi version| image:: https://img.shields.io/badge/pypi-v1.0.1-blue.svg
-   :target: https://pypi.python.org/pypi/fleep
-.. |python version| image:: https://img.shields.io/badge/python-3-blue.svg
-.. |license| image:: https://img.shields.io/badge/license-MIT-blue.svg
+fleep
+=====
+
+File format determination library for Python
+
+|pypi version| |python version| |license|
+
+Getting Started
+---------------
+
+**fleep** is a library that determines file format by file signature (also known as "magic number").
+
+Installation
+------------
+
+You can install fleep using *pip*. Simply run in CLI:
+
+::
+
+    pip install fleep
+
+Requirements
+------------
+
+-  Python >= 3.1
+
+In Use
+------
+
+fleep has main function *get()* that determines file format. It takes byte sequence (128 bytes are enough) as an argument and returns an instance of class *Info* with the following arguments:
+
+-  *type* -> list of suitable file types
+-  *extension* -> list of suitable file extensions
+-  *mime* -> list of suitable file MIME types
+
+You may presume that first element in list will be the most suitable.
+
+Also an instance of class *Info* has the following methods:
+
+-  *type_matches()* -> checks if file type matches with given type as an argument
+-  *extension_matches()* -> checks if file extension matches with given extension as an argument
+-  *mime_matches()* -> checks if file MIME type matches with given MIME type as an argument
+
+There are 3 more functions:
+
+-  *supported_types()* -> returns a list of supported file types
+-  *supported_extensions()* -> returns a list of supported file extensions
+-  *supported_mimes()* -> returns a list of supported file MIME types
+
+Examples
+--------
+
+You can find examples in *examples* folder. There is a simple example:
+
+.. code:: python
+
+    import fleep
+
+    with open("png_image", "rb") as file:
+        info = fleep.get(file.read(128))
+
+    print(info.type)  # prints ['raster-image']
+    print(info.extension)  # prints ['png']
+    print(info.mime)  # prints ['image/png']
+
+    print(info.type_matches("raster-image"))  # prints True
+    print(info.extension_matches("gif"))  # prints False
+    print(info.mime_matches("image/png"))  # prints True
+
+Tests
+-----
+
+You can find tests in *tests* folder. There are results of speed test:
+
+**Workstation**
+
+-  Python 3.6 x64 bit
+-  Windows 10 Home x64 bit
+-  Intel Pentium G4620 3.70GHz
+-  Kingston DDR4-2400 8192MB
+-  Kingston SSD 120GB 550MB/s
+
+**Results**
+
+*Note:* 0.0012345 -> time in seconds
+
++-----------+---------+-----------+-----------+
+| Iteration | Minimum | Maximum   | Average   |
++===========+=========+===========+===========+
+| 1         | 0.0     | 0.0005312 | 0.0000851 |
++-----------+---------+-----------+-----------+
+| 2         | 0.0     | 0.0005360 | 0.0000858 |
++-----------+---------+-----------+-----------+
+| 3         | 0.0     | 0.0005236 | 0.0000837 |
++-----------+---------+-----------+-----------+
+| 4         | 0.0     | 0.0005035 | 0.0000833 |
++-----------+---------+-----------+-----------+
+| 5         | 0.0     | 0.0005295 | 0.0000835 |
++-----------+---------+-----------+-----------+
+
+Supported Formats
+-----------------
+
+There is a list of supported formats (in alphabetical order):
+
+*Raster Image:*
+
+-  BMP
+-  GIF
+-  ICO
+-  JP2
+-  JPEG
+-  PNG
+-  PSD
+-  TIFF
+-  WEBP
+
+*Raw Image:*
+
+-  ARW
+-  CR2
+-  CRW
+-  DNG
+-  ERF
+-  NEF
+-  NRW
+-  ORF
+-  PEF
+-  RAF
+-  RAW
+-  RW2
+-  SRW
+-  X3F
+
+*Vector Image:*
+
+-  AI
+-  EPS
+
+*3D Image:*
+
+-  C4D
+-  FBX
+-  MA
+-  MS3D
+-  MTL
+-  OBJ
+-  PLY
+-  WRL
+-  X3D
+-  XSI
+
+*Audio:*
+
+-  AAC
+-  AC3
+-  AIFF
+-  AMR
+-  AU
+-  FLAC
+-  M4A
+-  MIDI
+-  MKA
+-  MP3
+-  OGA
+-  RA
+-  VOC
+-  WAV
+-  WMA
+
+*Video:*
+
+-  3G2
+-  3GP
+-  ASF
+-  AVI
+-  FLV
+-  M4V
+-  MKV
+-  MOV
+-  MP4
+-  MPG
+-  OGV
+-  SWF
+-  VOB
+-  WEBM
+-  WMV
+
+*Document:*
+
+-  DOC
+-  DOCX
+-  EPUB
+-  KEY
+-  NUMBERS
+-  ODP
+-  ODS
+-  ODT
+-  PAGES
+-  PDF
+-  PPS
+-  PPT
+-  PPTX
+-  RTF
+-  XLS
+-  XLSX
+-  XML
+
+*Archive:*
+
+-  7Z
+-  DMG
+-  GZ
+-  ISO
+-  RAR
+-  TAR.Z
+-  ZIP
+
+*Executable:*
+
+-  COM
+-  EXE
+-  JAR
+
+*Font:*
+
+-  OTF
+-  TTF
+-  WOFF
+-  WOFF2
+
+*System:*
+
+-  CAB
+-  CAT
+-  DLL
+-  DRV
+-  REG
+-  SDB
+-  SYS
+
+*Database:*
+
+-  SQLITE
+
+Changelog
+---------
+
+You can find changelog in *CHANGELOG.md* file.
+
+License
+-------
+
+This project is licensed under the *MIT License*.
+
+Authors
+-------
+
+**Mykyta Paliienko** - `GitHub profile`_
+
+.. _GitHub profile: https://github.com/floyernick
+
+.. |pypi version| image:: https://img.shields.io/badge/pypi-v1.0.1-blue.svg
+   :target: https://pypi.python.org/pypi/fleep
+.. |python version| image:: https://img.shields.io/badge/python-3-blue.svg
+.. |license| image:: https://img.shields.io/badge/license-MIT-blue.svg
    :target: https://github.com/floyernick/fleep/blob/master/LICENSE
\ No newline at end of file
diff --git a/examples/example.py b/examples/example.py
new file mode 100644
index 0000000..c65d0fd
--- /dev/null
+++ b/examples/example.py
@@ -0,0 +1,12 @@
+import fleep
+
+with open("testfile", "rb") as file:
+    info = fleep.get(file.read(128))
+
+print(info.type)
+print(info.extension)
+print(info.mime)
+
+print(info.type_matches("raster-image"))
+print(info.extension_matches("gif"))
+print(info.mime_matches("image/png"))
diff --git a/examples/supported.py b/examples/supported.py
new file mode 100644
index 0000000..f66f8f6
--- /dev/null
+++ b/examples/supported.py
@@ -0,0 +1,5 @@
+import fleep
+
+print(fleep.supported_types())
+print(fleep.supported_extensions())
+print(fleep.supported_mimes())
diff --git a/examples/testfile b/examples/testfile
new file mode 100644
index 0000000..3795fd0
Binary files /dev/null and b/examples/testfile differ
diff --git a/fleep.egg-info/PKG-INFO b/fleep.egg-info/PKG-INFO
deleted file mode 100644
index b8b74ac..0000000
--- a/fleep.egg-info/PKG-INFO
+++ /dev/null
@@ -1,290 +0,0 @@
-Metadata-Version: 1.2
-Name: fleep
-Version: 1.0.1
-Summary: File format determination library
-Home-page: https://github.com/floyernick/fleep
-Author: Mykyta Paliienko
-Author-email: floyernick@gmail.com
-License: MIT
-Description-Content-Type: UNKNOWN
-Description: fleep
-        =====
-        
-        File format determination library for Python
-        
-        |pypi version| |python version| |license|
-        
-        Getting Started
-        ---------------
-        
-        **fleep** is a library that determines file format by file signature (also known as "magic number").
-        
-        Installation
-        ------------
-        
-        You can install fleep using *pip*. Simply run in CLI:
-        
-        ::
-        
-            pip install fleep
-        
-        Requirements
-        ------------
-        
-        -  Python >= 3.1
-        
-        In Use
-        ------
-        
-        fleep has main function *get()* that determines file format. It takes byte sequence (128 bytes are enough) as an argument and returns an instance of class *Info* with the following arguments:
-        
-        -  *type* -> list of suitable file types
-        -  *extension* -> list of suitable file extensions
-        -  *mime* -> list of suitable file MIME types
-        
-        You may presume that first element in list will be the most suitable.
-        
-        Also an instance of class *Info* has the following methods:
-        
-        -  *type_matches()* -> checks if file type matches with given type as an argument
-        -  *extension_matches()* -> checks if file extension matches with given extension as an argument
-        -  *mime_matches()* -> checks if file MIME type matches with given MIME type as an argument
-        
-        There are 3 more functions:
-        
-        -  *supported_types()* -> returns a list of supported file types
-        -  *supported_extensions()* -> returns a list of supported file extensions
-        -  *supported_mimes()* -> returns a list of supported file MIME types
-        
-        Examples
-        --------
-        
-        You can find examples in *examples* folder. There is a simple example:
-        
-        .. code:: python
-        
-            import fleep
-        
-            with open("png_image", "rb") as file:
-                info = fleep.get(file.read(128))
-        
-            print(info.type)  # prints ['raster-image']
-            print(info.extension)  # prints ['png']
-            print(info.mime)  # prints ['image/png']
-        
-            print(info.type_matches("raster-image"))  # prints True
-            print(info.extension_matches("gif"))  # prints False
-            print(info.mime_matches("image/png"))  # prints True
-        
-        Tests
-        -----
-        
-        You can find tests in *tests* folder. There are results of speed test:
-        
-        **Workstation**
-        
-        -  Python 3.6 x64 bit
-        -  Windows 10 Home x64 bit
-        -  Intel Pentium G4620 3.70GHz
-        -  Kingston DDR4-2400 8192MB
-        -  Kingston SSD 120GB 550MB/s
-        
-        **Results**
-        
-        *Note:* 0.0012345 -> time in seconds
-        
-        +-----------+---------+-----------+-----------+
-        | Iteration | Minimum | Maximum   | Average   |
-        +===========+=========+===========+===========+
-        | 1         | 0.0     | 0.0005312 | 0.0000851 |
-        +-----------+---------+-----------+-----------+
-        | 2         | 0.0     | 0.0005360 | 0.0000858 |
-        +-----------+---------+-----------+-----------+
-        | 3         | 0.0     | 0.0005236 | 0.0000837 |
-        +-----------+---------+-----------+-----------+
-        | 4         | 0.0     | 0.0005035 | 0.0000833 |
-        +-----------+---------+-----------+-----------+
-        | 5         | 0.0     | 0.0005295 | 0.0000835 |
-        +-----------+---------+-----------+-----------+
-        
-        Supported Formats
-        -----------------
-        
-        There is a list of supported formats (in alphabetical order):
-        
-        *Raster Image:*
-        
-        -  BMP
-        -  GIF
-        -  ICO
-        -  JP2
-        -  JPEG
-        -  PNG
-        -  PSD
-        -  TIFF
-        -  WEBP
-        
-        *Raw Image:*
-        
-        -  ARW
-        -  CR2
-        -  CRW
-        -  DNG
-        -  ERF
-        -  NEF
-        -  NRW
-        -  ORF
-        -  PEF
-        -  RAF
-        -  RAW
-        -  RW2
-        -  SRW
-        -  X3F
-        
-        *Vector Image:*
-        
-        -  AI
-        -  EPS
-        
-        *3D Image:*
-        
-        -  C4D
-        -  FBX
-        -  MA
-        -  MS3D
-        -  MTL
-        -  OBJ
-        -  PLY
-        -  WRL
-        -  X3D
-        -  XSI
-        
-        *Audio:*
-        
-        -  AAC
-        -  AC3
-        -  AIFF
-        -  AMR
-        -  AU
-        -  FLAC
-        -  M4A
-        -  MIDI
-        -  MKA
-        -  MP3
-        -  OGA
-        -  RA
-        -  VOC
-        -  WAV
-        -  WMA
-        
-        *Video:*
-        
-        -  3G2
-        -  3GP
-        -  ASF
-        -  AVI
-        -  FLV
-        -  M4V
-        -  MKV
-        -  MOV
-        -  MP4
-        -  MPG
-        -  OGV
-        -  SWF
-        -  VOB
-        -  WEBM
-        -  WMV
-        
-        *Document:*
-        
-        -  DOC
-        -  DOCX
-        -  EPUB
-        -  KEY
-        -  NUMBERS
-        -  ODP
-        -  ODS
-        -  ODT
-        -  PAGES
-        -  PDF
-        -  PPS
-        -  PPT
-        -  PPTX
-        -  RTF
-        -  XLS
-        -  XLSX
-        -  XML
-        
-        *Archive:*
-        
-        -  7Z
-        -  DMG
-        -  GZ
-        -  ISO
-        -  RAR
-        -  TAR.Z
-        -  ZIP
-        
-        *Executable:*
-        
-        -  COM
-        -  EXE
-        -  JAR
-        
-        *Font:*
-        
-        -  OTF
-        -  TTF
-        -  WOFF
-        -  WOFF2
-        
-        *System:*
-        
-        -  CAB
-        -  CAT
-        -  DLL
-        -  DRV
-        -  REG
-        -  SDB
-        -  SYS
-        
-        *Database:*
-        
-        -  SQLITE
-        
-        Changelog
-        ---------
-        
-        You can find changelog in *CHANGELOG.md* file.
-        
-        License
-        -------
-        
-        This project is licensed under the *MIT License*.
-        
-        Authors
-        -------
-        
-        **Mykyta Paliienko** - `GitHub profile`_
-        
-        .. _GitHub profile: https://github.com/floyernick
-        
-        .. |pypi version| image:: https://img.shields.io/badge/pypi-v1.0.1-blue.svg
-           :target: https://pypi.python.org/pypi/fleep
-        .. |python version| image:: https://img.shields.io/badge/python-3-blue.svg
-        .. |license| image:: https://img.shields.io/badge/license-MIT-blue.svg
-           :target: https://github.com/floyernick/fleep/blob/master/LICENSE
-Platform: UNKNOWN
-Classifier: Development Status :: 5 - Production/Stable
-Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: MIT License
-Classifier: Operating System :: OS Independent
-Classifier: Programming Language :: Python :: 3.1
-Classifier: Programming Language :: Python :: 3.2
-Classifier: Programming Language :: Python :: 3.3
-Classifier: Programming Language :: Python :: 3.4
-Classifier: Programming Language :: Python :: 3.5
-Classifier: Programming Language :: Python :: 3.6
-Classifier: Programming Language :: Python :: 3.7
-Classifier: Topic :: Software Development
-Requires-Python: >=3.1
diff --git a/fleep.egg-info/SOURCES.txt b/fleep.egg-info/SOURCES.txt
deleted file mode 100644
index 6c8d054..0000000
--- a/fleep.egg-info/SOURCES.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-MANIFEST.in
-README.rst
-setup.py
-fleep/__init__.py
-fleep/data.json
-fleep.egg-info/PKG-INFO
-fleep.egg-info/SOURCES.txt
-fleep.egg-info/dependency_links.txt
-fleep.egg-info/not-zip-safe
-fleep.egg-info/top_level.txt
\ No newline at end of file
diff --git a/fleep.egg-info/dependency_links.txt b/fleep.egg-info/dependency_links.txt
deleted file mode 100644
index 8b13789..0000000
--- a/fleep.egg-info/dependency_links.txt
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/fleep.egg-info/not-zip-safe b/fleep.egg-info/not-zip-safe
deleted file mode 100644
index d3f5a12..0000000
--- a/fleep.egg-info/not-zip-safe
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/fleep.egg-info/top_level.txt b/fleep.egg-info/top_level.txt
deleted file mode 100644
index bb6e81c..0000000
--- a/fleep.egg-info/top_level.txt
+++ /dev/null
@@ -1 +0,0 @@
-fleep
diff --git a/fleep/__init__.py b/fleep/__init__.py
index 947ff9c..b403394 100644
--- a/fleep/__init__.py
+++ b/fleep/__init__.py
@@ -1,97 +1,97 @@
-# -*- coding: utf-8 -*-
-
-
-"""
-Description: File format determination library
-Author: Mykyta Paliienko
-License: MIT
-"""
-
-
-import os
-import json
-
-
-with open(os.path.join(os.path.dirname(os.path.abspath(__file__)), "data.json")) as data_file:
-    data = json.loads(data_file.read())
-
-
-class Info:
-    """
-    Generates object with given arguments
-
-    Takes:
-        type_ (list) -> list of file types
-        extension (list) -> list of file extensions
-        mime (list) -> list of file MIME types
-
-    Returns:
-        (<class 'fleep.Info'>) -> Class instance
-    """
-
-    def __init__(self, type_, extension, mime):
-        self.type = type_
-        self.extension = extension
-        self.mime = mime
-
-    def type_matches(self, type_):
-        """ Checks if file type matches with given type """
-        return type_ in self.type
-
-    def extension_matches(self, extension):
-        """ Checks if file extension matches with given extension """
-        return extension in self.extension
-
-    def mime_matches(self, mime):
-        """ Checks if file MIME type matches with given MIME type """
-        return mime in self.mime
-
-
-def get(obj):
-    """
-    Determines file format and picks suitable file types, extensions and MIME types
-
-    Takes:
-        obj (bytes) -> byte sequence (128 bytes are enough)
-
-    Returns:
-        (<class 'fleep.Info'>) -> Class instance
-    """
-
-    if not isinstance(obj, bytes):
-        raise TypeError("object type must be bytes")
-
-    info = {
-        "type": dict(),
-        "extension": dict(),
-        "mime": dict()
-    }
-
-    stream = " ".join(['{:02X}'.format(byte) for byte in obj])
-
-    for element in data:
-        for signature in element["signature"]:
-            offset = element["offset"] * 2 + element["offset"]
-            if signature == stream[offset:len(signature) + offset]:
-                for key in ["type", "extension", "mime"]:
-                    info[key][element[key]] = len(signature)
-
-    for key in ["type", "extension", "mime"]:
-        info[key] = [element for element in sorted(info[key], key=info[key].get, reverse=True)]
-
-    return Info(info["type"], info["extension"], info["mime"])
-
-
-def supported_types():
-    """ Returns a list of supported file types """
-    return sorted(set([x["type"] for x in data]))
-
-
-def supported_extensions():
-    """ Returns a list of supported file extensions """
-    return sorted(set([x["extension"] for x in data]))
-
-
-def supported_mimes():
-    """ Returns a list of supported file MIME types """
-    return sorted(set([x["mime"] for x in data]))
+# -*- coding: utf-8 -*-
+
+
+"""
+Description: File format determination library
+Author: Mykyta Paliienko
+License: MIT
+"""
+
+
+import os
+import json
+
+
+with open(os.path.join(os.path.dirname(os.path.abspath(__file__)), "data.json")) as data_file:
+    data = json.loads(data_file.read())
+
+
+class Info:
+    """
+    Generates object with given arguments
+
+    Takes:
+        type_ (list) -> list of file types
+        extension (list) -> list of file extensions
+        mime (list) -> list of file MIME types
+
+    Returns:
+        (<class 'fleep.Info'>) -> Class instance
+    """
+
+    def __init__(self, type_, extension, mime):
+        self.type = type_
+        self.extension = extension
+        self.mime = mime
+
+    def type_matches(self, type_):
+        """ Checks if file type matches with given type """
+        return type_ in self.type
+
+    def extension_matches(self, extension):
+        """ Checks if file extension matches with given extension """
+        return extension in self.extension
+
+    def mime_matches(self, mime):
+        """ Checks if file MIME type matches with given MIME type """
+        return mime in self.mime
+
+
+def get(obj):
+    """
+    Determines file format and picks suitable file types, extensions and MIME types
+
+    Takes:
+        obj (bytes) -> byte sequence (128 bytes are enough)
+
+    Returns:
+        (<class 'fleep.Info'>) -> Class instance
+    """
+
+    if not isinstance(obj, bytes):
+        raise TypeError("object type must be bytes")
+
+    info = {
+        "type": dict(),
+        "extension": dict(),
+        "mime": dict()
+    }
+
+    stream = " ".join(['{:02X}'.format(byte) for byte in obj])
+
+    for element in data:
+        for signature in element["signature"]:
+            offset = element["offset"] * 2 + element["offset"]
+            if signature == stream[offset:len(signature) + offset]:
+                for key in ["type", "extension", "mime"]:
+                    info[key][element[key]] = len(signature)
+
+    for key in ["type", "extension", "mime"]:
+        info[key] = [element for element in sorted(info[key], key=info[key].get, reverse=True)]
+
+    return Info(info["type"], info["extension"], info["mime"])
+
+
+def supported_types():
+    """ Returns a list of supported file types """
+    return sorted(set([x["type"] for x in data]))
+
+
+def supported_extensions():
+    """ Returns a list of supported file extensions """
+    return sorted(set([x["extension"] for x in data]))
+
+
+def supported_mimes():
+    """ Returns a list of supported file MIME types """
+    return sorted(set([x["mime"] for x in data]))
diff --git a/fleep/data.json b/fleep/data.json
index 971a8cc..a213471 100644
--- a/fleep/data.json
+++ b/fleep/data.json
@@ -1,106 +1,106 @@
-[
-    {"type": "raster-image", "extension": "bmp", "mime": "image/bmp", "offset": 0, "signature": ["42 4D"]},
-    {"type": "raster-image", "extension": "gif", "mime": "image/gif", "offset": 0, "signature": ["47 49 46 38"]},
-    {"type": "raster-image", "extension": "jpg", "mime": "image/jpeg", "offset": 0, "signature": ["FF D8 FF"]},
-    {"type": "raster-image", "extension": "jp2", "mime": "image/jp2", "offset": 0, "signature": ["00 00 00 0C 6A 50 20 20"]},
-    {"type": "raster-image", "extension": "png", "mime": "image/png", "offset": 0, "signature": ["89 50 4E 47 0D 0A 1A 0A"]},
-    {"type": "raster-image", "extension": "webp", "mime": "image/webp", "offset": 8, "signature": ["57 45 42 50"]},
-    {"type": "raster-image", "extension": "ico", "mime": "image/x-icon", "offset": 0, "signature": ["00 00 01 00"]},
-    {"type": "raster-image", "extension": "psd", "mime": "image/vnd.adobe.photoshop", "offset": 0, "signature": ["38 42 50 53"]},
-    {"type": "raster-image", "extension": "tiff", "mime": "image/tiff", "offset": 0, "signature": ["49 20 49", "49 49 2A 00", "4D 4D 00 2A", "4D 4D 00 2B"]},
-    {"type": "raw-image", "extension": "raw", "mime": "application/octet-stream", "offset": 0, "signature": ["49 49 55 00"]},
-    {"type": "raw-image", "extension": "arw", "mime": "application/octet-stream", "offset": 0, "signature": ["49 49 2A 00"]},
-    {"type": "raw-image", "extension": "x3f", "mime": "application/octet-stream", "offset": 0, "signature": ["46 4F 56 62"]},
-    {"type": "raw-image", "extension": "srw", "mime": "application/octet-stream", "offset": 0, "signature": ["4D 4D 00 2A"]},
-    {"type": "raw-image", "extension": "pef", "mime": "application/octet-stream", "offset": 0, "signature": ["4D 4D 00 2A"]},
-    {"type": "raw-image", "extension": "rw2", "mime": "application/octet-stream", "offset": 0, "signature": ["49 49 55 00"]},
-    {"type": "raw-image", "extension": "nef", "mime": "application/octet-stream", "offset": 0, "signature": ["4D 4D 00 2A"]},
-    {"type": "raw-image", "extension": "nrw", "mime": "application/octet-stream", "offset": 0, "signature": ["49 49 2A 00"]},
-    {"type": "raw-image", "extension": "raf", "mime": "application/octet-stream", "offset": 0, "signature": ["46 55 4A 49"]},
-    {"type": "raw-image", "extension": "erf", "mime": "application/octet-stream", "offset": 0, "signature": ["4D 4D 00 2A"]},
-    {"type": "raw-image", "extension": "crw", "mime": "application/octet-stream", "offset": 0, "signature": ["49 49 1A 00"]},
-    {"type": "raw-image", "extension": "cr2", "mime": "application/octet-stream", "offset": 0, "signature": ["49 49 2A 00"]},
-    {"type": "raw-image", "extension": "orf", "mime": "application/octet-stream", "offset": 0, "signature": ["49 49 52 4F", "49 49 52 53"]},
-    {"type": "raw-image", "extension": "dng", "mime": "application/octet-stream", "offset": 0, "signature": ["4D 4D 00 2A", "49 49 2A 00"]},
-    {"type": "vector-image", "extension": "ai", "mime": "application/postscript", "offset": 0, "signature": ["25 50 44 46"]},
-    {"type": "vector-image", "extension": "eps", "mime": "application/postscript", "offset": 0, "signature": ["C5 D0 D3 C6", "25 21 50 53 2D 41 64 6F"]},
-    {"type": "3d-image", "extension": "obj", "mime": "text/plain", "offset": 2, "signature": ["4D 61 78 32 4F 62 6A", "42 6C 65 6E 64 65 72"]},
-    {"type": "3d-image", "extension": "mtl", "mime": "text/plain", "offset": 2, "signature": ["4D 61 78 32 4D 74 6C", "42 6C 65 6E 64 65 72 20 4D 54 4C 20 46 69 6C 65"]},
-    {"type": "3d-image", "extension": "xsi", "mime": "text/plain", "offset": 0, "signature": ["78 73 69"]},
-    {"type": "3d-image", "extension": "ply", "mime": "text/plain", "offset": 50, "signature": ["70 6C 79"]},
-    {"type": "3d-image", "extension": "ma", "mime": "text/plain", "offset": 2, "signature": ["4D 61 79 61"]},
-    {"type": "3d-image", "extension": "wrl", "mime": "text/plain", "offset": 1, "signature": ["56 52 4D 4C"]},
-    {"type": "3d-image", "extension": "x3d", "mime": "application/xml", "offset": 50, "signature": ["58 33 44"]},
-    {"type": "3d-image", "extension": "fbx", "mime": "application/octet-stream", "offset": 2, "signature": ["46 42 58"]},
-    {"type": "3d-image", "extension": "ms3d", "mime": "application/octet-stream", "offset": 0, "signature": ["4D 53 33 44"]},
-    {"type": "3d-image", "extension": "c4d", "mime": "application/octet-stream", "offset": 0, "signature": ["58 43 34 44 43 34 44 36"]},
-    {"type": "audio", "extension": "aiff", "mime": "audio/aiff", "offset": 0, "signature": ["46 4F 52 4D 00"]},
-    {"type": "audio", "extension": "aac", "mime": "audio/aac", "offset": 0, "signature": ["FF F1", "FF F9"]},
-    {"type": "audio", "extension": "midi", "mime": "audio/midi", "offset": 0, "signature": ["4D 54 68 64"]},
-    {"type": "audio", "extension": "mp3", "mime": "audio/mpeg", "offset": 0, "signature": ["49 44 33"]},
-    {"type": "audio", "extension": "m4a", "mime": "audio/mp4", "offset": 4, "signature": ["66 74 79 70 4D 34 41 20"]},
-    {"type": "audio", "extension": "oga", "mime": "audio/ogg", "offset": 0, "signature": ["4F 67 67 53 00 02 00 00"]},
-    {"type": "audio", "extension": "wav", "mime": "audio/wav", "offset": 0, "signature": ["52 49 46 46"]},
-    {"type": "audio", "extension": "wma", "mime": "audio/x-ms-wma", "offset": 0, "signature": ["30 26 B2 75 8E 66 CF 11"]},
-    {"type": "audio", "extension": "flac", "mime": "audio/flac", "offset": 0, "signature": ["66 4C 61 43 00 00 00 22"]},
-    {"type": "audio", "extension": "mka", "mime": "audio/x-matroska", "offset": 31, "signature": ["6D 61 74 72 6F 73 6B 61"]},
-    {"type": "audio", "extension": "au", "mime": "audio/basic", "offset": 0, "signature": ["2E 73 6E 64"]},
-    {"type": "audio", "extension": "ra", "mime": "application/octet-stream", "offset": 0, "signature": ["2E 52 4D 46"]},
-    {"type": "audio", "extension": "amr", "mime": "application/octet-stream", "offset": 0, "signature": ["23 21 41 4D"]},
-    {"type": "audio", "extension": "ac3", "mime": "application/octet-stream", "offset": 0, "signature": ["0B 77"]},
-    {"type": "audio", "extension": "voc", "mime": "application/octet-stream", "offset": 0, "signature": ["43 72 65 61 74 69 76 65"]},
-    {"type": "video", "extension": "3g2", "mime": "video/3gpp2", "offset": 4, "signature": ["66 74 79 70 33 67 70"]},
-    {"type": "video", "extension": "3gp", "mime": "video/3gpp", "offset": 4, "signature": ["66 74 79 70 33 67 70"]},
-    {"type": "video", "extension": "avi", "mime": "video/avi", "offset": 8, "signature": ["41 56 49 20 4C 49 53 54"]},
-    {"type": "video", "extension": "flv", "mime": "video/x-flv", "offset": 0, "signature": ["46 4C 56"]},
-    {"type": "video", "extension": "m4v", "mime": "video/mp4", "offset": 4, "signature": ["66 74 79 70 4D 34 56 20", "66 74 79 70 6D 70 34 32"]},
-    {"type": "video", "extension": "mkv", "mime": "video/x-matroska", "offset": 31, "signature": ["6D 61 74 72 6F 73 6B 61"]},
-    {"type": "video", "extension": "mov", "mime": "video/quicktime", "offset": 4, "signature": ["66 74 79 70 71 74 20 20", "6D 6F 6F 76", "66 72 65 65", "6D 64 61 74", "77 69 64 65", "70 6E 6F 74", "73 6B 69 70"]},
-    {"type": "video", "extension": "mp4", "mime": "video/mp4", "offset": 4, "signature": ["66 74 79 70 4D 53 4E 56", "66 74 79 70 69 73 6F 6D"]},
-    {"type": "video", "extension": "swf", "mime": "application/vnd.adobe.flash-movie", "offset": 0, "signature": ["43 57 53", "46 57 53"]},
-    {"type": "video", "extension": "mpg", "mime": "video/mpeg", "offset": 0, "signature": ["00 00 01 BA"]},
-    {"type": "video", "extension": "vob", "mime": "video/dvd", "offset": 0, "signature": ["00 00 01 BA"]},
-    {"type": "video", "extension": "wmv", "mime": "video/x-ms-wmv", "offset": 0, "signature": ["30 26 B2 75 8E 66 CF 11"]},
-    {"type": "video", "extension": "asf", "mime": "video/x-ms-asf", "offset": 0, "signature": ["30 26 B2 75 8E 66 CF 11"]},
-    {"type": "video", "extension": "ogv", "mime": "video/ogg", "offset": 0, "signature": ["4F 67 67 53 00 02 00 00"]},
-    {"type": "video", "extension": "webm", "mime": "video/webm", "offset": 0, "signature": ["1A 45 DF A3"]},
-    {"type": "document", "extension": "odt", "mime": "application/vnd.oasis.opendocument.text", "offset": 73, "signature": ["74 65 78 74"]},
-    {"type": "document", "extension": "odp", "mime": "application/vnd.oasis.opendocument.presentation", "offset": 73, "signature": ["70 72 65 73 65 6E 74 61 74 69 6F 6E"]},
-    {"type": "document", "extension": "ods", "mime": "application/vnd.oasis.opendocument.spreadsheet", "offset": 73, "signature": ["73 70 72 65 61 64 73 68 65 65 74"]},
-    {"type": "document", "extension": "doc", "mime": "application/vnd.ms-excel", "offset": 0, "signature": ["D0 CF 11 E0 A1 B1 1A E1", "50 4B 03 04 14 00 06 00"]},
-    {"type": "document", "extension": "pps", "mime": "application/vnd.ms-powerpoint", "offset": 0, "signature": ["D0 CF 11 E0 A1 B1 1A E1", "50 4B 03 04 14 00 06 00"]},
-    {"type": "document", "extension": "ppt", "mime": "application/vnd.ms-powerpoint", "offset": 0, "signature": ["D0 CF 11 E0 A1 B1 1A E1", "50 4B 03 04 14 00 06 00"]},
-    {"type": "document", "extension": "xls", "mime": "application/vnd.ms-excel", "offset": 0, "signature": ["D0 CF 11 E0 A1 B1 1A E1", "50 4B 03 04 14 00 06 00"]},
-    {"type": "document", "extension": "docx", "mime": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "offset": 0, "signature": ["D0 CF 11 E0 A1 B1 1A E1", "50 4B 03 04 14 00 06 00"]},
-    {"type": "document", "extension": "pptx", "mime": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "offset": 0, "signature": ["D0 CF 11 E0 A1 B1 1A E1", "50 4B 03 04 14 00 06 00"]},
-    {"type": "document", "extension": "xlsx", "mime": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "offset": 0, "signature": ["D0 CF 11 E0 A1 B1 1A E1", "50 4B 03 04 14 00 06 00"]},
-    {"type": "document", "extension": "pages", "mime": "application/zip", "offset": 0, "signature": ["50 4B 03 04"]},
-    {"type": "document", "extension": "key", "mime": "application/zip", "offset": 0, "signature": ["50 4B 03 04"]},
-    {"type": "document", "extension": "numbers", "mime": "application/zip", "offset": 0, "signature": ["50 4B 03 04"]},
-    {"type": "document", "extension": "pdf", "mime": "application/pdf", "offset": 0, "signature": ["25 50 44 46"]},
-    {"type": "document", "extension": "rtf", "mime": "application/rtf", "offset": 0, "signature": ["7B 5C 72 74 66 31"]},
-    {"type": "document", "extension": "epub", "mime": "application/epub+zip", "offset": 0, "signature": ["50 4B 03 04"]},
-    {"type": "document", "extension": "xml", "mime": "application/xml", "offset": 2, "signature": ["78 6D 6C"]},
-    {"type": "archive", "extension": "7z", "mime": "application/x-7z-compressed", "offset": 0, "signature": ["37 7A BC AF 27 1C"]},
-    {"type": "archive", "extension": "rar", "mime": "application/vnd.rar", "offset": 0, "signature": ["52 61 72 21 1A 07 00", "52 61 72 21 1A 07 01 00"]},
-    {"type": "archive", "extension": "tar.z", "mime": "application/x-compress", "offset": 0, "signature": ["1F 9D", "1F A0"]},
-    {"type": "archive", "extension": "gz", "mime": "application/gzip", "offset": 0, "signature": ["1F 8B 08"]},
-    {"type": "archive", "extension": "zip", "mime": "application/zip", "offset": 0, "signature": ["50 4B 03 04", "50 4B 05 06", "50 4B 07 08"]},
-    {"type": "archive", "extension": "dmg", "mime": "application/x-apple-diskimage", "offset": 0, "signature": ["78 01 73 0D 62 62 60"]},
-    {"type": "archive", "extension": "iso", "mime": "application/octet-stream", "offset": 0, "signature": ["43 49 53 4F", "43 44 30 30 31"]},
-    {"type": "executable", "extension": "com", "mime": "application/x-msdownload", "offset": 0, "signature": ["4D 5A"]},
-    {"type": "executable", "extension": "exe", "mime": "application/vnd.microsoft.portable-executable", "offset": 0, "signature": ["4D 5A 90 00"]},
-    {"type": "executable", "extension": "jar", "mime": "application/java-archive", "offset": 0, "signature": ["50 4B 03 04"]},
-    {"type": "font", "extension": "ttf", "mime": "font/ttf", "offset": 0, "signature": ["00 01 00 00"]},
-    {"type": "font", "extension": "otf", "mime": "font/otf", "offset": 0, "signature": ["4F 54 54 4F"]},
-    {"type": "font", "extension": "woff", "mime": "font/woff", "offset": 0, "signature": ["77 4F 46 46"]},
-    {"type": "font", "extension": "woff2", "mime": "font/woff2", "offset": 0, "signature": ["77 4F 46 32"]},
-    {"type": "system", "extension": "cab", "mime": "application/vnd.ms-cab-compressed", "offset": 0, "signature": ["4D 53 43 46"]},
-    {"type": "system", "extension": "cat", "mime": "application/vnd.microsoft.portable-executable", "offset": 0, "signature": ["30 82"]},
-    {"type": "system", "extension": "dll", "mime": "application/vnd.microsoft.portable-executable", "offset": 0, "signature": ["4D 5A 90 00"]},
-    {"type": "system", "extension": "drv", "mime": "application/vnd.microsoft.portable-executable", "offset": 0, "signature": ["4D 5A 90 00"]},
-    {"type": "system", "extension": "sdb", "mime": "application/vnd.microsoft.portable-executable", "offset": 8, "signature": ["73 64 62 66"]},
-    {"type": "system", "extension": "sys", "mime": "application/vnd.microsoft.portable-executable", "offset": 0, "signature": ["4D 5A 80 00", "4D 5A 90 00"]},
-    {"type": "system", "extension": "reg", "mime": "application/vnd.microsoft.portable-executable", "offset": 0, "signature": ["52 45 47 45 44 49 54", "57 69 6E 64 6F 77 73 20 52 65 67 69 73 74 72 79"]},
-    {"type": "database", "extension": "sqlite", "mime": "application/x-sqlite3", "offset": 0, "signature": ["53 51 4C 69 74 65 20 66 6F 72 6D 61 74 20 33 00"]}
+[
+    {"type": "raster-image", "extension": "bmp", "mime": "image/bmp", "offset": 0, "signature": ["42 4D"]},
+    {"type": "raster-image", "extension": "gif", "mime": "image/gif", "offset": 0, "signature": ["47 49 46 38"]},
+    {"type": "raster-image", "extension": "jpg", "mime": "image/jpeg", "offset": 0, "signature": ["FF D8 FF"]},
+    {"type": "raster-image", "extension": "jp2", "mime": "image/jp2", "offset": 0, "signature": ["00 00 00 0C 6A 50 20 20"]},
+    {"type": "raster-image", "extension": "png", "mime": "image/png", "offset": 0, "signature": ["89 50 4E 47 0D 0A 1A 0A"]},
+    {"type": "raster-image", "extension": "webp", "mime": "image/webp", "offset": 8, "signature": ["57 45 42 50"]},
+    {"type": "raster-image", "extension": "ico", "mime": "image/x-icon", "offset": 0, "signature": ["00 00 01 00"]},
+    {"type": "raster-image", "extension": "psd", "mime": "image/vnd.adobe.photoshop", "offset": 0, "signature": ["38 42 50 53"]},
+    {"type": "raster-image", "extension": "tiff", "mime": "image/tiff", "offset": 0, "signature": ["49 20 49", "49 49 2A 00", "4D 4D 00 2A", "4D 4D 00 2B"]},
+    {"type": "raw-image", "extension": "raw", "mime": "application/octet-stream", "offset": 0, "signature": ["49 49 55 00"]},
+    {"type": "raw-image", "extension": "arw", "mime": "application/octet-stream", "offset": 0, "signature": ["49 49 2A 00"]},
+    {"type": "raw-image", "extension": "x3f", "mime": "application/octet-stream", "offset": 0, "signature": ["46 4F 56 62"]},
+    {"type": "raw-image", "extension": "srw", "mime": "application/octet-stream", "offset": 0, "signature": ["4D 4D 00 2A"]},
+    {"type": "raw-image", "extension": "pef", "mime": "application/octet-stream", "offset": 0, "signature": ["4D 4D 00 2A"]},
+    {"type": "raw-image", "extension": "rw2", "mime": "application/octet-stream", "offset": 0, "signature": ["49 49 55 00"]},
+    {"type": "raw-image", "extension": "nef", "mime": "application/octet-stream", "offset": 0, "signature": ["4D 4D 00 2A"]},
+    {"type": "raw-image", "extension": "nrw", "mime": "application/octet-stream", "offset": 0, "signature": ["49 49 2A 00"]},
+    {"type": "raw-image", "extension": "raf", "mime": "application/octet-stream", "offset": 0, "signature": ["46 55 4A 49"]},
+    {"type": "raw-image", "extension": "erf", "mime": "application/octet-stream", "offset": 0, "signature": ["4D 4D 00 2A"]},
+    {"type": "raw-image", "extension": "crw", "mime": "application/octet-stream", "offset": 0, "signature": ["49 49 1A 00"]},
+    {"type": "raw-image", "extension": "cr2", "mime": "application/octet-stream", "offset": 0, "signature": ["49 49 2A 00"]},
+    {"type": "raw-image", "extension": "orf", "mime": "application/octet-stream", "offset": 0, "signature": ["49 49 52 4F", "49 49 52 53"]},
+    {"type": "raw-image", "extension": "dng", "mime": "application/octet-stream", "offset": 0, "signature": ["4D 4D 00 2A", "49 49 2A 00"]},
+    {"type": "vector-image", "extension": "ai", "mime": "application/postscript", "offset": 0, "signature": ["25 50 44 46"]},
+    {"type": "vector-image", "extension": "eps", "mime": "application/postscript", "offset": 0, "signature": ["C5 D0 D3 C6", "25 21 50 53 2D 41 64 6F"]},
+    {"type": "3d-image", "extension": "obj", "mime": "text/plain", "offset": 2, "signature": ["4D 61 78 32 4F 62 6A", "42 6C 65 6E 64 65 72"]},
+    {"type": "3d-image", "extension": "mtl", "mime": "text/plain", "offset": 2, "signature": ["4D 61 78 32 4D 74 6C", "42 6C 65 6E 64 65 72 20 4D 54 4C 20 46 69 6C 65"]},
+    {"type": "3d-image", "extension": "xsi", "mime": "text/plain", "offset": 0, "signature": ["78 73 69"]},
+    {"type": "3d-image", "extension": "ply", "mime": "text/plain", "offset": 50, "signature": ["70 6C 79"]},
+    {"type": "3d-image", "extension": "ma", "mime": "text/plain", "offset": 2, "signature": ["4D 61 79 61"]},
+    {"type": "3d-image", "extension": "wrl", "mime": "text/plain", "offset": 1, "signature": ["56 52 4D 4C"]},
+    {"type": "3d-image", "extension": "x3d", "mime": "application/xml", "offset": 50, "signature": ["58 33 44"]},
+    {"type": "3d-image", "extension": "fbx", "mime": "application/octet-stream", "offset": 2, "signature": ["46 42 58"]},
+    {"type": "3d-image", "extension": "ms3d", "mime": "application/octet-stream", "offset": 0, "signature": ["4D 53 33 44"]},
+    {"type": "3d-image", "extension": "c4d", "mime": "application/octet-stream", "offset": 0, "signature": ["58 43 34 44 43 34 44 36"]},
+    {"type": "audio", "extension": "aiff", "mime": "audio/aiff", "offset": 0, "signature": ["46 4F 52 4D 00"]},
+    {"type": "audio", "extension": "aac", "mime": "audio/aac", "offset": 0, "signature": ["FF F1", "FF F9"]},
+    {"type": "audio", "extension": "midi", "mime": "audio/midi", "offset": 0, "signature": ["4D 54 68 64"]},
+    {"type": "audio", "extension": "mp3", "mime": "audio/mpeg", "offset": 0, "signature": ["49 44 33"]},
+    {"type": "audio", "extension": "m4a", "mime": "audio/mp4", "offset": 4, "signature": ["66 74 79 70 4D 34 41 20"]},
+    {"type": "audio", "extension": "oga", "mime": "audio/ogg", "offset": 0, "signature": ["4F 67 67 53 00 02 00 00"]},
+    {"type": "audio", "extension": "wav", "mime": "audio/wav", "offset": 0, "signature": ["52 49 46 46"]},
+    {"type": "audio", "extension": "wma", "mime": "audio/x-ms-wma", "offset": 0, "signature": ["30 26 B2 75 8E 66 CF 11"]},
+    {"type": "audio", "extension": "flac", "mime": "audio/flac", "offset": 0, "signature": ["66 4C 61 43 00 00 00 22"]},
+    {"type": "audio", "extension": "mka", "mime": "audio/x-matroska", "offset": 31, "signature": ["6D 61 74 72 6F 73 6B 61"]},
+    {"type": "audio", "extension": "au", "mime": "audio/basic", "offset": 0, "signature": ["2E 73 6E 64"]},
+    {"type": "audio", "extension": "ra", "mime": "application/octet-stream", "offset": 0, "signature": ["2E 52 4D 46"]},
+    {"type": "audio", "extension": "amr", "mime": "application/octet-stream", "offset": 0, "signature": ["23 21 41 4D"]},
+    {"type": "audio", "extension": "ac3", "mime": "application/octet-stream", "offset": 0, "signature": ["0B 77"]},
+    {"type": "audio", "extension": "voc", "mime": "application/octet-stream", "offset": 0, "signature": ["43 72 65 61 74 69 76 65"]},
+    {"type": "video", "extension": "3g2", "mime": "video/3gpp2", "offset": 4, "signature": ["66 74 79 70 33 67 70"]},
+    {"type": "video", "extension": "3gp", "mime": "video/3gpp", "offset": 4, "signature": ["66 74 79 70 33 67 70"]},
+    {"type": "video", "extension": "avi", "mime": "video/avi", "offset": 8, "signature": ["41 56 49 20 4C 49 53 54"]},
+    {"type": "video", "extension": "flv", "mime": "video/x-flv", "offset": 0, "signature": ["46 4C 56"]},
+    {"type": "video", "extension": "m4v", "mime": "video/mp4", "offset": 4, "signature": ["66 74 79 70 4D 34 56 20", "66 74 79 70 6D 70 34 32"]},
+    {"type": "video", "extension": "mkv", "mime": "video/x-matroska", "offset": 31, "signature": ["6D 61 74 72 6F 73 6B 61"]},
+    {"type": "video", "extension": "mov", "mime": "video/quicktime", "offset": 4, "signature": ["66 74 79 70 71 74 20 20", "6D 6F 6F 76", "66 72 65 65", "6D 64 61 74", "77 69 64 65", "70 6E 6F 74", "73 6B 69 70"]},
+    {"type": "video", "extension": "mp4", "mime": "video/mp4", "offset": 4, "signature": ["66 74 79 70 4D 53 4E 56", "66 74 79 70 69 73 6F 6D"]},
+    {"type": "video", "extension": "swf", "mime": "application/vnd.adobe.flash-movie", "offset": 0, "signature": ["43 57 53", "46 57 53"]},
+    {"type": "video", "extension": "mpg", "mime": "video/mpeg", "offset": 0, "signature": ["00 00 01 BA"]},
+    {"type": "video", "extension": "vob", "mime": "video/dvd", "offset": 0, "signature": ["00 00 01 BA"]},
+    {"type": "video", "extension": "wmv", "mime": "video/x-ms-wmv", "offset": 0, "signature": ["30 26 B2 75 8E 66 CF 11"]},
+    {"type": "video", "extension": "asf", "mime": "video/x-ms-asf", "offset": 0, "signature": ["30 26 B2 75 8E 66 CF 11"]},
+    {"type": "video", "extension": "ogv", "mime": "video/ogg", "offset": 0, "signature": ["4F 67 67 53 00 02 00 00"]},
+    {"type": "video", "extension": "webm", "mime": "video/webm", "offset": 0, "signature": ["1A 45 DF A3"]},
+    {"type": "document", "extension": "odt", "mime": "application/vnd.oasis.opendocument.text", "offset": 73, "signature": ["74 65 78 74"]},
+    {"type": "document", "extension": "odp", "mime": "application/vnd.oasis.opendocument.presentation", "offset": 73, "signature": ["70 72 65 73 65 6E 74 61 74 69 6F 6E"]},
+    {"type": "document", "extension": "ods", "mime": "application/vnd.oasis.opendocument.spreadsheet", "offset": 73, "signature": ["73 70 72 65 61 64 73 68 65 65 74"]},
+    {"type": "document", "extension": "doc", "mime": "application/vnd.ms-excel", "offset": 0, "signature": ["D0 CF 11 E0 A1 B1 1A E1", "50 4B 03 04 14 00 06 00"]},
+    {"type": "document", "extension": "pps", "mime": "application/vnd.ms-powerpoint", "offset": 0, "signature": ["D0 CF 11 E0 A1 B1 1A E1", "50 4B 03 04 14 00 06 00"]},
+    {"type": "document", "extension": "ppt", "mime": "application/vnd.ms-powerpoint", "offset": 0, "signature": ["D0 CF 11 E0 A1 B1 1A E1", "50 4B 03 04 14 00 06 00"]},
+    {"type": "document", "extension": "xls", "mime": "application/vnd.ms-excel", "offset": 0, "signature": ["D0 CF 11 E0 A1 B1 1A E1", "50 4B 03 04 14 00 06 00"]},
+    {"type": "document", "extension": "docx", "mime": "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "offset": 0, "signature": ["D0 CF 11 E0 A1 B1 1A E1", "50 4B 03 04 14 00 06 00"]},
+    {"type": "document", "extension": "pptx", "mime": "application/vnd.openxmlformats-officedocument.presentationml.presentation", "offset": 0, "signature": ["D0 CF 11 E0 A1 B1 1A E1", "50 4B 03 04 14 00 06 00"]},
+    {"type": "document", "extension": "xlsx", "mime": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "offset": 0, "signature": ["D0 CF 11 E0 A1 B1 1A E1", "50 4B 03 04 14 00 06 00"]},
+    {"type": "document", "extension": "pages", "mime": "application/zip", "offset": 0, "signature": ["50 4B 03 04"]},
+    {"type": "document", "extension": "key", "mime": "application/zip", "offset": 0, "signature": ["50 4B 03 04"]},
+    {"type": "document", "extension": "numbers", "mime": "application/zip", "offset": 0, "signature": ["50 4B 03 04"]},
+    {"type": "document", "extension": "pdf", "mime": "application/pdf", "offset": 0, "signature": ["25 50 44 46"]},
+    {"type": "document", "extension": "rtf", "mime": "application/rtf", "offset": 0, "signature": ["7B 5C 72 74 66 31"]},
+    {"type": "document", "extension": "epub", "mime": "application/epub+zip", "offset": 0, "signature": ["50 4B 03 04"]},
+    {"type": "document", "extension": "xml", "mime": "application/xml", "offset": 2, "signature": ["78 6D 6C"]},
+    {"type": "archive", "extension": "7z", "mime": "application/x-7z-compressed", "offset": 0, "signature": ["37 7A BC AF 27 1C"]},
+    {"type": "archive", "extension": "rar", "mime": "application/vnd.rar", "offset": 0, "signature": ["52 61 72 21 1A 07 00", "52 61 72 21 1A 07 01 00"]},
+    {"type": "archive", "extension": "tar.z", "mime": "application/x-compress", "offset": 0, "signature": ["1F 9D", "1F A0"]},
+    {"type": "archive", "extension": "gz", "mime": "application/gzip", "offset": 0, "signature": ["1F 8B 08"]},
+    {"type": "archive", "extension": "zip", "mime": "application/zip", "offset": 0, "signature": ["50 4B 03 04", "50 4B 05 06", "50 4B 07 08"]},
+    {"type": "archive", "extension": "dmg", "mime": "application/x-apple-diskimage", "offset": 0, "signature": ["78 01 73 0D 62 62 60"]},
+    {"type": "archive", "extension": "iso", "mime": "application/octet-stream", "offset": 0, "signature": ["43 49 53 4F", "43 44 30 30 31"]},
+    {"type": "executable", "extension": "com", "mime": "application/x-msdownload", "offset": 0, "signature": ["4D 5A"]},
+    {"type": "executable", "extension": "exe", "mime": "application/vnd.microsoft.portable-executable", "offset": 0, "signature": ["4D 5A 90 00"]},
+    {"type": "executable", "extension": "jar", "mime": "application/java-archive", "offset": 0, "signature": ["50 4B 03 04"]},
+    {"type": "font", "extension": "ttf", "mime": "font/ttf", "offset": 0, "signature": ["00 01 00 00"]},
+    {"type": "font", "extension": "otf", "mime": "font/otf", "offset": 0, "signature": ["4F 54 54 4F"]},
+    {"type": "font", "extension": "woff", "mime": "font/woff", "offset": 0, "signature": ["77 4F 46 46"]},
+    {"type": "font", "extension": "woff2", "mime": "font/woff2", "offset": 0, "signature": ["77 4F 46 32"]},
+    {"type": "system", "extension": "cab", "mime": "application/vnd.ms-cab-compressed", "offset": 0, "signature": ["4D 53 43 46"]},
+    {"type": "system", "extension": "cat", "mime": "application/vnd.microsoft.portable-executable", "offset": 0, "signature": ["30 82"]},
+    {"type": "system", "extension": "dll", "mime": "application/vnd.microsoft.portable-executable", "offset": 0, "signature": ["4D 5A 90 00"]},
+    {"type": "system", "extension": "drv", "mime": "application/vnd.microsoft.portable-executable", "offset": 0, "signature": ["4D 5A 90 00"]},
+    {"type": "system", "extension": "sdb", "mime": "application/vnd.microsoft.portable-executable", "offset": 8, "signature": ["73 64 62 66"]},
+    {"type": "system", "extension": "sys", "mime": "application/vnd.microsoft.portable-executable", "offset": 0, "signature": ["4D 5A 80 00", "4D 5A 90 00"]},
+    {"type": "system", "extension": "reg", "mime": "application/vnd.microsoft.portable-executable", "offset": 0, "signature": ["52 45 47 45 44 49 54", "57 69 6E 64 6F 77 73 20 52 65 67 69 73 74 72 79"]},
+    {"type": "database", "extension": "sqlite", "mime": "application/x-sqlite3", "offset": 0, "signature": ["53 51 4C 69 74 65 20 66 6F 72 6D 61 74 20 33 00"]}
 ]
\ No newline at end of file
diff --git a/setup.cfg b/setup.cfg
deleted file mode 100644
index 4927abe..0000000
--- a/setup.cfg
+++ /dev/null
@@ -1,4 +0,0 @@
-[egg_info]
-tag_build = 
-tag_date = 0
-
diff --git a/setup.py b/setup.py
index 3d2a875..bbe2590 100644
--- a/setup.py
+++ b/setup.py
@@ -1,31 +1,31 @@
-import os
-import setuptools
-
-setuptools.setup(
-    name="fleep",
-    version="1.0.1",
-    description="File format determination library",
-    long_description=open(os.path.join(os.path.abspath(os.path.dirname(__file__)), "README.rst"), "r").read(),
-    url="https://github.com/floyernick/fleep",
-    author="Mykyta Paliienko",
-    author_email="floyernick@gmail.com",
-    license="MIT",
-    packages=["fleep"],
-    classifiers=[
-        "Development Status :: 5 - Production/Stable",
-        "Intended Audience :: Developers",
-        "License :: OSI Approved :: MIT License",
-        "Operating System :: OS Independent",
-        "Programming Language :: Python :: 3.1",
-        "Programming Language :: Python :: 3.2",
-        "Programming Language :: Python :: 3.3",
-        "Programming Language :: Python :: 3.4",
-        "Programming Language :: Python :: 3.5",
-        "Programming Language :: Python :: 3.6",
-        "Programming Language :: Python :: 3.7",
-        "Topic :: Software Development",
-    ],
-    python_requires=">=3.1",
-    include_package_data=True,
-    zip_safe=False
-)
+import os
+import setuptools
+
+setuptools.setup(
+    name="fleep",
+    version="1.0.1",
+    description="File format determination library",
+    long_description=open(os.path.join(os.path.abspath(os.path.dirname(__file__)), "README.rst"), "r").read(),
+    url="https://github.com/floyernick/fleep",
+    author="Mykyta Paliienko",
+    author_email="floyernick@gmail.com",
+    license="MIT",
+    packages=["fleep"],
+    classifiers=[
+        "Development Status :: 5 - Production/Stable",
+        "Intended Audience :: Developers",
+        "License :: OSI Approved :: MIT License",
+        "Operating System :: OS Independent",
+        "Programming Language :: Python :: 3.1",
+        "Programming Language :: Python :: 3.2",
+        "Programming Language :: Python :: 3.3",
+        "Programming Language :: Python :: 3.4",
+        "Programming Language :: Python :: 3.5",
+        "Programming Language :: Python :: 3.6",
+        "Programming Language :: Python :: 3.7",
+        "Topic :: Software Development",
+    ],
+    python_requires=">=3.1",
+    include_package_data=True,
+    zip_safe=False
+)
diff --git a/tests/maintest.py b/tests/maintest.py
new file mode 100644
index 0000000..0e24ca4
--- /dev/null
+++ b/tests/maintest.py
@@ -0,0 +1,12 @@
+import fleep
+
+with open("testfile", "rb") as file:
+    info = fleep.get(file.read(128))
+
+assert info.type == ["raster-image"]
+assert info.extension == ["png"]
+assert info.mime == ["image/png"]
+
+assert info.type_matches("raster-image")
+assert info.extension_matches("png")
+assert info.mime_matches("image/png")
diff --git a/tests/speedtest.py b/tests/speedtest.py
new file mode 100644
index 0000000..89338ab
--- /dev/null
+++ b/tests/speedtest.py
@@ -0,0 +1,16 @@
+import time
+import fleep
+
+with open("testfile", "rb") as file:
+    stream = file.read(128)
+
+times = []
+
+for i in range(10000):
+    time_ = time.time()
+    fleep.get(stream)
+    times.append(time.time() - time_)
+
+print("min:", round(min(times), 7))
+print("max:", round(max(times), 7))
+print("avg:", round(sum(times)/len(times), 7))
diff --git a/tests/testfile b/tests/testfile
new file mode 100644
index 0000000..3795fd0
Binary files /dev/null and b/tests/testfile differ