An overall solution for task №2 test assignment [here is a link to typescript pg](https://www.typescriptlang.org/play?#code/PTAEoSwOwFwUwE4DMCGBjOBnUSD2DQZcATXTAOgCtNcocIAbOALgChp5l05QAVE3KADercBGLNQUAK4BbAEaIA3KMIQYTSZhgJoAcxXg0uWQAcm8CaHm5cTFFBUBfdrESoMoAKqZE-UqBwAB7wUMTY-oIi4NK+CACSVjIKyqwuIJBuXJ54BDAomADWoADEACyZgUGIaBC+oABMbBkABgy4KMSgxCj5oCg20jCgvkxoloQCmADk-UMAFvjYDl2murCgCFjSDMNEoMZQNJotrpwePACCC-iRVaHh3nF30XMwiwhaOvrOrBmZ5242FyoFiiAo1FobA47m4oAA4nAoqoGL0vusDCioHp0T80mdYZ5LsRiFtMNhgg9sIjkeBtFs4DBcdjDCNpOoWCNvizVLUYABPZmY8AALwgpmMxE59LxLhh2R4AGETKYHPzhKooChZNLucKDr00PMAArzBAFXUY1nyTBC37yi5PRD3OBhbDE0lYTAAGlAyrMao14DESTkigQrPAWp1dtUMTi0cteODgVkKEYsZTpkWUCTPJTAHc4DaObGXH8wLgAG6IFAMBgHVHk0BVpqsNBN7A+cGRTAAfVbQdAa1w8HGcC6RFI-ekCAbmeHCFHcHHXTBCBnc9AC9M0nkDAgaFAOtkgkkapUvNo9Ok43wAAop2Rt1yMb719ghQBKIfgd51cgn03BsAF5JmnSNCHmACPz7WdQNBOJMEg-8KBPQQwKEJxWRccB-nQrlpCQJA2HAXd90PUA9EZABpOB+QAZXmFAGgAVgANlAMCCn5KAj3vJA6EkAAxaQ+JgCBaF9cgZJQBA9FtfooH5ABtABdL9JGNJdZDqOAAB4ZWxAA+LjTNeQ5tFfLjQBUwTpNk+TMDUwDcAYvV7y-FR-hTSy7Dgch2j0e8ACJqJgOjGOYtj2MkELfXpLyryOYZ5CImyUALdNhjQBB+VMIhyEwPcNAC4gIGo7RQoYgAJS4AFoYviqQ4ALPhKQAUT4khEE88hXUlOB70SpKjGvYYyRsy4EHNflyBHIgBVMAK01Mcg0DrBh71zNqvA4AAOabZvvNKkC-X0ghA4z73vaYAAY7umABqIJXPcjF7wARnYr8vyKg8MHvRrfr+yhcGgW7plGzZGVnOgyTejzodw0AQH+AAlMTLjCABZOBT1I0BMagbHiDx08MswXj+NGFcYGEoTQFE8TJKgBzyDkhTz2U9Sfy0nS9P0rDQAAH1BMI4CQaAJ1Mq7fwOcbQEKeihQyrL1CggDwsipiWI44a4DGem2f6Jzobw4A-KYQLcGClpXU4Imsdx-HcF9ZXBVAAASIQPacX0enySQfdQ8h0JUj21KcFpzcgJBQEfaC0NdiP6I0+WxqOfybbt4nSfJt2cFwMTiF9LYYDh49XYgEUJyLggfb9mOlBAX1Q-DyPY-AcvK-blPI8glHM+OAKgvvFo85d08y7EkZDbphn66VlXvd9+jo9jvvT1T-k1LV7K56Nhn7xkjmzaUSCe4QOgt9wHe1Jw1R-ivuh0JridCfR2Hr4LgAhflIoJw9t+F8ap1LyxfprZO28B6qBRl-CuP9Xb-2ZkebiVM+IJ1puMReIkxLjFZuzTmikwHp35iYQWwsxYl0ltLYgstzJxgVilZensjJ6H3hrUO2t6K6xigbI+JtiGx0gbfe+j8LbgC8FAdChNpHoX-oA+8wDXz6D5i2cGXRXh-iTmHfuacbI0KlrmYgEjvAyOQfyVBlNqZYPnjgxmqCJJSVAKfYh3NVJkNANpChvh9JVk0Qw+WllhgqPYZwvYuieFRT1uxARC8hHnyYVbUettx7yMsag98FiKYgkbuvZuTCxGR0MRLYxE5H5PzAIfOmOB8GKVAKobBMBLj1hsZgzy5DdJ+O7AgSI4DqFlLoUE7RhA8q-gsN0XoKAIk4EZEaROAEgJwTnLHCA8d7wAEJA4oHILgQoX4mE6KXG1e2M18BzJgEafQUy+hIB0sHIQodlnwScJUBi9iWltJ1O8EgLRL7fzoJlA+OyqA0CgJ5QejTfKGnmPeOAP4hDQpTMwkeOdx68HmIgHgzFsCKFdP0RcuB9z41AAWdQ8xV7PKmCshgbyfmLCsD7FaXoUDUQ3koZFKZIFGLoZyphKMUbNP-okdp-FxCSGSOGTS3iBb1H0r0u4gypTlPoWZeWOh1SjPAJMnZsykDzLhdS6ctKu5xwTts6ZeyDlHODO8E5oAQqICXAQA1VzoLYluTM+5JhmAhVAE9KBrkTXwQDY66ANTxgiq6AykgIVIIpkmZNbi6thigshBCs13dAUwwoFLXYvVHxTEkIqgQP45ZAXIOILiIEwLiFjm8ja7r4WIq5cGFJ6LpiYuxaAXF1g4AEpmSOElsgyUUsjTAaNVdflWFmIGll5I2UIoTTDRBdBeUmP5SmQVTTPmtIYL2f+vTRXoNsfedciRJVhkQDKnx3SDL9LUiLDdMt1WjM1RnUAurpn6sNYsigLzVkrvWRa0F+zDkortWaXAbUnXnNdYam5eqfWyD9WG41ZBaVhpChG5p+7D38mPTGxkjL422uHhNLAn0S3PAEOAlNIKrUZsheR1dlcySfXIFsYgt4eA3TJB430aBZw0b8GWt9rGKPCEQogRI7MYBdDeWBYTEZJPBhA1sskKkVPkAvcQDSanuVYG07OXTcREh7zAupFdkGtM6b0y5XcmAjXECzSiyBZIbPBn9sIJwX4VIOahck2FLbpO2o7WPLtWKti9oKP2wdRKR1jveBO-DUwj3meIzOyQc7Ah6MXdRM1PKhmbrbTuyRvbDbLVdfghEjJEgZcQImQm4UGuEYTNqHgp6OliU6y+dht65UGSlc6ZVtCTEjKKeM7VX7GRet-c20OsF4Jmo05a-I1qIOQagg6uDLrLnXM9chh5VLdHLbnG8iNiIYBtd6YmadpGV0hNzaJgg9H+ipq9WC2gLHINJqwA0GyCNjHEButIV75bTLSDM01vrtawK9Z1KtjZZJAebNreLFVdCfxtqM2u3NDQq2mNtcVrHm6BUGmbQisLkGItpKiz2vt+KgWJaYKO8lKXru3Y6zqXLC7MBLqKzml9piytwKqaAAAzOQCd4FnzyHVOuKQnXCZ4frARu7cP+gYP4ojng34umC0fc+krr65ajOe8mj7B9uH1eII16+nXz2JjWSjrAoB0cI9N65knObgVcN0Wrg96X2uydB2SERwvvdmIyGUGX3Ze0wBgKYW0IAM3mG4IsBgUoECAXyoeHq60TDAA-JML9HQuh6oGMXYYEvml1yArMFANwNxKVWOsSjxVdhl5SYTDI94IBmDZw7OucWICY-BPkMIkAYBbfaJ0Xs1xfmt+67rhTn4nR9Lo0+kXg3fEGSXx8Y3IvJt2um0cjTQxHjw4n6qrbePK4i63SijI8+1xIUJr5RWpeGMazdQspbJCU1YDDZTZD8TbVje1GDUAM5fbf-D1DhY7X1U7GCIA15SocKQ-fAf+SIf5cLRWATTfWySza3DWcA5jM1DIRvZLSlZvZfZYGaT-YMSZOgj4DfLArfUgd7azW1DIEETaSAR4eqKiObVgpYJgkEe8Z7FTUAXAeOK-TARFfAlhPAEuIHLAcgEHMHCHdVezTLGtBHInZHBOVQ6fT3W-bHT9cAMQjceaWIOFIQU+FTX0GwyQUw4gcge7PzFdIeUAXw7NfHGw5CMrSnBZanJFZQtFSLbtGLJnAdFnYdNnGg8vBfKYDgmYMNfnQXFdUncbCpMXcAFwcsSZNBFqXaJCXsAcQHUKeYJPFPZgNPcFDPDALPHPPPUwAvKUIvWQYAICZqEKWo5PVPYAdPVEFouwNopaTogKYwHoj8EKJKf4TjQgLAGAYEC5ZpOpPiW0CsNAIqPdesPqd4V0fjLASHVFbOMeCPRYy2fYo2aNe8BoP6Y4iFe8CPXQ68S4tJa47yW4oPDXTLe8faZ4rFV494uWOnYKH43Y8gVre3UPR3HUUKHGFAIIQfOAPsAAOQgFdBgwWMAlBNOMUI+KzmtiuLOJuL2P+JD01yRJChxnwAgBQHmHIHcgcCICgHxJeLePdwhM+LJO+IpN+KpIOK2hBJOJ5OJPNwOBtlSOnHSMlPFIhRrxJKiLSRr1+j8K8lRjADfzeDYKXgEKAlYArHAEJxWO0HWIIHQl0DFGxGaAACp2xFZRg7obIRSjZ91fizTdkLThgQQ35a4ugqw6xpA+Mg9NIYTJ4yZXYBE7olSbpzikU9iEE4Y-4rF8E4yEzFTVSvioShStT+VTTGh5AZd4ArIQRIFAy64eTlpeg64Np6xFC2AUznYYzTwsyCSJSkyZToyC5OzuTPJzc-NCzWAHTgA-gnT-gGhfTyz-SLlqzgzQzwzPlo1IzntRhPp3S7i6Zo0VBWySYp5cABFPpfQniuzXieyUzAV0zUETyzzszwTTJITFTtTvCxyJziyZyyzVil5FyWxly7FPT1caTMtzo28RhBBaAE5FhlooIyAeACx8BigiBcBDkNzDZAdlMdzxg0tpwHdEhhTyA+zYzRgGgHyLzEy31eybzMlMyyKKLBynyLiBT8zFC3ykpiyBcdRkijR0woB9AWziK2z+yGLGgttKLPJdDiLaLTwUF6LMKHyJKmKzjczWLXzOUdSyIO8q5Tx35K9pkTTpy9i-Sl4xICJ7wOdKU+LoA1FHTnSWEyLtzqT8KETCL2xhLDz2zjyxKnjVBJLzi9iMk5KMy+IBFyLxKcd-hzLXYZ9-LBzAqZK11byFKGAIrzyVKpTnz+TUk2KQZNL-hyU2lFALCTEPzWAgA). it comes with types, class and memoization