diff --git a/tfs/collection.py b/tfs/collection.py
index 6baee14..62b5c40 100644
--- a/tfs/collection.py
+++ b/tfs/collection.py
@@ -9,7 +9,8 @@ Advanced tfs reading and writing functionality.
 
 """
 import os
-from handler import read_tfs, write_tfs, TfsDataFrame
+
+from tfs.handler import read_tfs, write_tfs, TfsDataFrame
 
 
 class _MetaTfsCollection(type):
diff --git a/tfs/fixed_dataframe.py b/tfs/fixed_dataframe.py
index 0a17f51..4b8e9d8 100644
--- a/tfs/fixed_dataframe.py
+++ b/tfs/fixed_dataframe.py
@@ -67,8 +67,8 @@ import os
 from collections import defaultdict, OrderedDict, namedtuple
 from contextlib import suppress
 
-from tools import DotDict
-from handler import TfsDataFrame, read_tfs, write_tfs
+from tfs.handler import TfsDataFrame, read_tfs, write_tfs
+from tfs.tools import DotDict
 
 DEFAULTS = defaultdict(float, {int: 0, str: ''})
 
diff --git a/tfs/tools.py b/tfs/tools.py
index fcd9262..4a45337 100644
--- a/tfs/tools.py
+++ b/tfs/tools.py
@@ -9,9 +9,12 @@ Additional functions to modify tfs files.
 :module: tools
 
 """
-from handler import TfsFormatError, read_tfs, write_tfs
 import logging
+
 import numpy as np
+
+from tfs.handler import TfsFormatError, read_tfs, write_tfs
+
 LOG = logging.getLogger(__name__)
 
 

Fix local imports
diff --git a/tests/context.py b/tests/context.py
index 7553cd5..4dae14c 100644
--- a/tests/context.py
+++ b/tests/context.py
@@ -3,9 +3,6 @@ from os.path import abspath, join, dirname, pardir
 root_path = abspath(join(dirname(__file__), pardir))
 if root_path not in sys.path:
     sys.path.insert(0, root_path)
-tfs_path = join(root_path, "tfs")
-if tfs_path not in sys.path:
-    sys.path.insert(0, tfs_path)
 test_path = join(root_path, "tests")
 if test_path not in sys.path:
     sys.path.insert(0, test_path)
diff --git a/tests/test_collection.py b/tests/test_collection.py
index e8f3194..a770035 100644
--- a/tests/test_collection.py
+++ b/tests/test_collection.py
@@ -4,9 +4,9 @@ import tempfile
 import pytest
 
 from . import context
-from collection import TfsCollection, Tfs
 from helper import compare_dataframes
 from tfs import read_tfs
+from tfs.collection import TfsCollection, Tfs
 
 CURRENT_DIR = os.path.dirname(__file__)
 
diff --git a/tests/test_fixed_dataframe.py b/tests/test_fixed_dataframe.py
index 94d5c09..1f0fbda 100644
--- a/tests/test_fixed_dataframe.py
+++ b/tests/test_fixed_dataframe.py
@@ -5,9 +5,9 @@ import numpy as np
 import pytest
 
 from . import context
-from fixed_dataframe import FixedColumn, FixedColumnCollection, FixedTfs
-from handler import read_tfs, write_tfs, TfsDataFrame
 from helper import compare_dataframes
+from tfs.fixed_dataframe import FixedColumn, FixedColumnCollection, FixedTfs
+from tfs.handler import read_tfs, write_tfs, TfsDataFrame
 
 
 class MyTfs(FixedTfs):
diff --git a/tests/test_tools.py b/tests/test_tools.py
index 20efa9f..0b922f8 100644
--- a/tests/test_tools.py
+++ b/tests/test_tools.py
@@ -5,8 +5,8 @@ from shutil import copyfile
 import pytest
 
 from . import context
-from handler import read_tfs, TfsFormatError
-from tools import remove_header_comments_from_files, remove_nan_from_files, significant_digits
+from tfs.handler import read_tfs, TfsFormatError
+from tfs.tools import remove_header_comments_from_files, remove_nan_from_files, significant_digits
 
 CURRENT_DIR = os.path.dirname(__file__)
 

pip install -e .[doc]
parse_log_pytest
numpy>=1.14.1 pandas>=0.22.0
pytest>=5.2 pytest-cov>=2.6 hypothesis>=3.23.0 attrs>=19.2.0 pytest
3.7
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
attrs==24.2.0
Bottleneck @ file:///opt/conda/conda-bld/bottleneck_1657175564434/work
certifi @ file:///croot/certifi_1671487769961/work/certifi
coverage==7.2.7
exceptiongroup==1.2.2
hypothesis==6.79.4
importlib-metadata==6.7.0
iniconfig==2.0.0
numexpr @ file:///croot/numexpr_1668713893690/work
numpy @ file:///opt/conda/conda-bld/numpy_and_numpy_base_1653915516269/work
packaging @ file:///croot/packaging_1671697413597/work
pandas==1.3.5
pluggy==1.2.0
pytest==7.4.4
pytest-cov==4.1.0
python-dateutil @ file:///tmp/build/80754af9/python-dateutil_1626374649649/work
pytz @ file:///croot/pytz_1671697431263/work
six @ file:///tmp/build/80754af9/six_1644875935023/work
sortedcontainers==2.4.0
-e git+https://github.com/pylhc/tfs.git@5822ec95a4184108b1ac76d206cc2f9cda231a92#egg=tfs_pandas
tomli==2.0.1
typing_extensions==4.7.1
zipp==3.15.0

name: tfs
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - blas=1.0=openblas
  - bottleneck=1.3.5=py37h7deecbd_0
  - ca-certificates=2025.2.25=h06a4308_0
  - certifi=2022.12.7=py37h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgfortran-ng=11.2.0=h00389a5_1
  - libgfortran5=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libopenblas=0.3.21=h043d6bf_0
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - numexpr=2.8.4=py37hd2a5715_0
  - numpy=1.21.5=py37hf838250_3
  - numpy-base=1.21.5=py37h1e6e340_3
  - openssl=1.1.1w=h7f8727e_0
  - packaging=22.0=py37h06a4308_0
  - pandas=1.3.5=py37h8c16a72_0
  - pip=22.3.1=py37h06a4308_0
  - python=3.7.16=h7a1cb2a_0
  - python-dateutil=2.8.2=pyhd3eb1b0_0
  - pytz=2022.7=py37h06a4308_0
  - readline=8.2=h5eee18b_0
  - setuptools=65.6.3=py37h06a4308_0
  - six=1.16.0=pyhd3eb1b0_1
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - wheel=0.38.4=py37h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - attrs==24.2.0
      - coverage==7.2.7
      - exceptiongroup==1.2.2
      - hypothesis==6.79.4
      - importlib-metadata==6.7.0
      - iniconfig==2.0.0
      - pluggy==1.2.0
      - pytest==7.4.4
      - pytest-cov==4.1.0
      - sortedcontainers==2.4.0
      - tomli==2.0.1
      - typing-extensions==4.7.1
      - zipp==3.15.0
prefix: /opt/conda/envs/tfs

tests/test_collection.py::test_read tests/test_collection.py::test_write tests/test_collection.py::test_maybe tests/test_fixed_dataframe.py::test_fixed_columns tests/test_fixed_dataframe.py::test_empty_df_creation tests/test_fixed_dataframe.py::test_setting_columns tests/test_fixed_dataframe.py::test_setting_headers tests/test_fixed_dataframe.py::test_setting_indices tests/test_fixed_dataframe.py::test_init_with_data tests/test_fixed_dataframe.py::test_single_plane_creation tests/test_fixed_dataframe.py::test_no_restrictions tests/test_fixed_dataframe.py::test_empty_write tests/test_fixed_dataframe.py::test_filled_write tests/test_fixed_dataframe.py::test_empty_read tests/test_fixed_dataframe.py::test_filled_read tests/test_fixed_dataframe.py::test_read_fail tests/test_fixed_dataframe.py::test_write_fail tests/test_tools.py::test_clean_file tests/test_tools.py::test_significant_digits
tests/test_fixed_dataframe.py::test_setting_loc
tfs/fixed_dataframe.py tfs/collection.py tfs/tools.py
tfs/fixed_dataframe.py tfs/collection.py tfs/tools.py