Index: src/hu/jmk/AutoLoader.php
===================================================================
--- src/hu/jmk/AutoLoader.php	(revision b0d266ab7f24b2150554afe1978c6ddfca2a0d31)
+++ src/hu/jmk/AutoLoader.php	(revision fbf3a594dd373d60f5b33b1f95d45de2e6476a7b)
@@ -1,18 +1,17 @@
 <?php
+
+declare(strict_types=1);
 
 namespace hu\jmk;
 
 class AutoLoader {
-  private static $basePaths;
+  private static array $basePaths = array();
 
-  public static function register() {
-    self::addBasePath(__DIR__ . "../../");
+  public static function register():void {
+    self::addBasePath(__DIR__ . "/../../");
     spl_autoload_register(array(new self(), "autoload"));
   }
 
-  public static function addBasePath($path) {
-    if (is_null(self::$basePaths)) {
-      self::$basePaths = array();
-    }
+  public static function addBasePath($path):void {
     if (!array_search($path, self::$basePaths)) {
       self::$basePaths[] = $path;
@@ -20,5 +19,5 @@
   }
 
-  public static function autoload($className) {
+  public static function autoload($className):void {
     $fileName = self::processClassName($className);
     if (is_readable($fileName)) {
@@ -33,5 +32,5 @@
   }
 
-  private static function processClassName($className) {
+  private static function processClassName($className):string {
     $className = ltrim($className, "\\");
     $fileName = "";
Index: src/hu/jmk/rtwi/PathProvider.php
===================================================================
--- src/hu/jmk/rtwi/PathProvider.php	(revision fbf3a594dd373d60f5b33b1f95d45de2e6476a7b)
+++ src/hu/jmk/rtwi/PathProvider.php	(revision fbf3a594dd373d60f5b33b1f95d45de2e6476a7b)
@@ -0,0 +1,17 @@
+<?php
+
+declare(strict_types=1);
+
+namespace hu\jmk\rtwi;
+
+Class PathProvider {
+  private string $home;
+
+  public function __construct($config, $userConfig, $username) {
+    $this->home = str_replace("//", "/", isset($userConfig["home"]) ? $userConfig["home"] : "${config["home"]}/${username}");
+  }
+
+  public function getHome():string {
+    return $this->home;
+  }
+}
Index: test/hu/jmk/rtwi/PathProviderTest.php
===================================================================
--- test/hu/jmk/rtwi/PathProviderTest.php	(revision fbf3a594dd373d60f5b33b1f95d45de2e6476a7b)
+++ test/hu/jmk/rtwi/PathProviderTest.php	(revision fbf3a594dd373d60f5b33b1f95d45de2e6476a7b)
@@ -0,0 +1,28 @@
+<?php
+
+declare(strict_types=1);
+
+use PHPUnit\Framework\TestCase;
+use hu\jmk\rtwi\PathProvider;
+
+final class PathProviderTest extends TestCase {
+  /**
+   * @test
+   */
+  public function shouldGetUserHome():void {
+    $this->assertSame(
+      "/home/custom/",
+      (new PathProvider(array("home" => "/home/"), array("home" => "/home/custom/"), "user"))->getHome()
+    );
+  }
+
+  /**
+   * @test
+   */
+  public function shouldAssembleUserHome():void {
+    $this->assertSame(
+      "/home/user",
+      (new PathProvider(array("home" => "/home/"), array(), "user"))->getHome()
+    );
+  }
+}
