diff --git a/CHANGELOG.md b/CHANGELOG.md
index 963197d54b41886aab3393497ffd17a0ae8787d1..43c9080c06ee1fd60408decf3aa6f88fcf0595fe 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,3 @@
-## [1.0.0] - 2023-03-06
+## [1.0.0] - 2024-10-23
 ### Added
 - init
diff --git a/composer.json b/composer.json
index 672f320aa37e59bdd196d713529ff9fb25ce8e1a..ab66cd5d55f5be9723412e06c5d8cee477d3f70b 100644
--- a/composer.json
+++ b/composer.json
@@ -20,7 +20,7 @@
     "config": {
         "sort-packages": true,
         "platform": {
-            "php": "7.3"
+            "php": "7.4"
         },
         "allow-plugins": {
             "dealerdirect/phpcodesniffer-composer-installer": true,
@@ -29,7 +29,7 @@
         }
     },
     "require": {
-        "php": ">=7.3",
+        "php": ">=7.4",
         "psr/log": "^1.1.0",
         "wpdesk/wp-persistence": "^3.0",
         "wpdesk/wp-view": "^2.0",
@@ -41,7 +41,7 @@
     "require-dev": {
         "10up/wp_mock": "*",
         "mockery/mockery": "*",
-        "phpunit/phpunit": "<7"
+        "phpunit/phpunit": "^9"
     },
     "autoload": {
         "psr-4": {
diff --git a/src/Abstracts/Email.php b/src/Abstracts/Email.php
index d21f2bb7ec8f7d3bc2af47af6a784e82d8444959..a9403d79978855fb21383f871662d5efb0b2c363 100644
--- a/src/Abstracts/Email.php
+++ b/src/Abstracts/Email.php
@@ -9,42 +9,42 @@ class Email {
     /**
      * @var array
      */
-    private $recipients = [];
+    private array $recipients = [];
 
     /**
      * @var string
      */
-    private $subject = '';
+    private string $subject = '';
 
     /**
      * @var array
      */
-    private $attachments = [];
+    private array $attachments = [];
 
     /**
      * @var string
      */
-    private $content = '';
+    private string $content = '';
 
     /**
      * @var array
      */
-    private $headers = [ 'Content-Type' => 'text/html' ];
+    private array $headers = [ 'Content-Type' => 'text/html' ];
 
     /**
      * @var string
      */
-    private $from_email;
+    private string $from_email;
 
     /**
      * @var string
      */
-    private $from_name;
+    private string $from_name;
 
     /**
      * @var array
      */
-    private $template_attributes;
+    private array $template_attributes;
 
     /**
      * @param string $from_email
@@ -106,7 +106,7 @@ class Email {
      *
      * @return self
      */
-    public function set_recipients( array $recipients = [] ): self {
+    public function set_recipients( array $recipients ): self {
         $this->recipients = $recipients;
 
         return $this;
@@ -162,9 +162,11 @@ class Email {
     }
 
     /**
-     * @return string
+     * @param $type
+     *
+     * @return Email
      */
-    public function set_content_type( $type = 'html' ): self {
+    public function set_content_type( $type ): self {
         switch ( $type ) {
             case 'plain':
                 $content_type = 'text/plain';
@@ -200,12 +202,20 @@ class Email {
         return $this->content;
     }
 
-    public function set_template_attributes( string $name, string $value ): self {
-        $this->template_attributes[ $name ] = $value;
+    /**
+     * @param array $template_attributes
+     *
+     * @return $this
+     */
+    public function set_template_attributes( array $template_attributes ): self {
+        $this->template_attributes= $template_attributes;
 
         return $this;
     }
 
+    /**
+     * @return array
+     */
     public function get_template_attributes(): array {
         return $this->template_attributes;
     }
diff --git a/src/Exceptions/MailerException.php b/src/Exceptions/MailerException.php
index 6c005cd4975cdb253742004f5b71ce244db0c1b5..b406220f61ce7d1498e3b745ae350a606107165f 100644
--- a/src/Exceptions/MailerException.php
+++ b/src/Exceptions/MailerException.php
@@ -4,9 +4,12 @@ declare( strict_types=1 );
 
 namespace WPDesk\Library\WPEmail\Exceptions;
 
-class MailerException extends \RuntimeException {
+use RuntimeException;
+use WP_Error;
 
-    public static function with_wp_error( \WP_Error $error ): self {
+class MailerException extends RuntimeException {
+
+    public static function with_wp_error( WP_Error $error ): self {
         $errors  = $error->get_error_messages( 'wp_mail_failed' );
         $message = implode( "\n", $errors );
 
diff --git a/src/Helpers/ColorConversion.php b/src/Helpers/ColorConversion.php
index e8242ee402eaa058e124241c4dbda8d4a13337d5..2be755f039299e8c3313f796c41046268502b1ff 100644
--- a/src/Helpers/ColorConversion.php
+++ b/src/Helpers/ColorConversion.php
@@ -11,7 +11,7 @@ class ColorConversion {
      *
      * @return bool  True if a light color.
      */
-    public static function is_hex_light( $color ) {
+    public static function is_hex_light( $color ): bool {
         $hex = str_replace( '#', '', $color );
 
         $c_r = hexdec( substr( $hex, 0, 2 ) );
@@ -31,11 +31,11 @@ class ColorConversion {
     /**
      * Convert RGB to HEX.
      *
-     * @param mixed $color Color.
+     * @param string $color Color.
      *
      * @return array
      */
-    public static function rgb_from_hex( $color ) {
+    public static function rgb_from_hex( string $color ): array {
         $color = str_replace( '#', '', $color );
         // Convert shorthand colors to full format, e.g. "FFF" -> "FFFFFF".
         $color = preg_replace( '~^(.)(.)(.)$~', '$1$1$2$2$3$3', $color );
@@ -52,17 +52,17 @@ class ColorConversion {
     /**
      * Make HEX color darker.
      *
-     * @param mixed $color  Color.
+     * @param string $color  Color.
      * @param int   $factor Darker factor.
      *                      Defaults to 30.
      *
      * @return string
      */
-    public static function hex_darker( $color, $factor = 30 ) {
+    public static function hex_darker( string $color, int $factor = 30 ): string {
         $base  = self::rgb_from_hex( $color );
         $color = '#';
 
-        foreach ( $base as $k => $v ) {
+        foreach ( $base as $v ) {
             $amount      = $v / 100;
             $amount      = self::round( $amount * $factor );
             $new_decimal = $v - $amount;
@@ -81,17 +81,17 @@ class ColorConversion {
     /**
      * Make HEX color lighter.
      *
-     * @param mixed $color  Color.
-     * @param int   $factor Lighter factor.
+     * @param string $color  Color.
+     * @param int    $factor Lighter factor.
      *                      Defaults to 30.
      *
      * @return string
      */
-    public static function hex_lighter( $color, $factor = 30 ) {
+    public static function hex_lighter( string $color, int $factor = 30 ): string {
         $base  = self::rgb_from_hex( $color );
         $color = '#';
 
-        foreach ( $base as $k => $v ) {
+        foreach ( $base as $v ) {
             $amount      = 255 - $v;
             $amount      = $amount / 100;
             $amount      = self::round( $amount * $factor );
diff --git a/src/Helpers/StyleInliner.php b/src/Helpers/StyleInliner.php
deleted file mode 100644
index 9068deeddfad4b16d4da360d196d05c1035b2ae7..0000000000000000000000000000000000000000
--- a/src/Helpers/StyleInliner.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-namespace WPDesk\Library\WPEmail\Helpers;
-
-use Pelago\Emogrifier\CssInliner;
-use Pelago\Emogrifier\HtmlProcessor\CssToAttributeConverter;
-use Pelago\Emogrifier\HtmlProcessor\HtmlPruner;
-
-class StyleInliner {
-
-    public static function inline( string $content, string $styles = '' ): string {
-        if ( class_exists( 'DOMDocument' ) ) {
-            try {
-                $css_inliner  = CssInliner::fromHtml( $content )->inlineCss( $styles );
-                $dom_document = $css_inliner->getDomDocument();
-                HtmlPruner::fromDomDocument( $dom_document )->removeElementsWithDisplayNone();
-                $content = CssToAttributeConverter::fromDomDocument( $dom_document )
-                                                  ->convertCssToVisualAttributes()
-                                                  ->render();
-            } catch ( \Exception $e ) {
-                error_log( $e->getMessage() );
-            }
-        } else {
-            $content = '<style>' . strip_tags( $styles ) . '</style>' . $content;
-        }
-
-        return $content;
-    }
-
-    /**
-     * @return array|string|string[]
-     */
-    protected function replace_placeholders( string $string ): string {
-        if ( empty( $this->placeholders ) ) {
-            return $string;
-        }
-
-        return (string) str_replace( array_keys( $this->placeholders ), array_values( $this->placeholders ), $string );
-    }
-
-}
diff --git a/src/Template.php b/src/Template.php
index c0c66bac330d0f71b66e69ed4a8d03f94b97eab2..d6e127257ad74de48b89d3007ea6381e087b4d42 100644
--- a/src/Template.php
+++ b/src/Template.php
@@ -2,22 +2,32 @@
 
 namespace WPDesk\Library\WPEmail;
 
-use WPDesk\Library\WPEmail\Helpers\StyleInliner;
+use Exception;
+use Pelago\Emogrifier\CssInliner;
+use Pelago\Emogrifier\HtmlProcessor\CssToAttributeConverter;
+use Pelago\Emogrifier\HtmlProcessor\HtmlPruner;
+use Psr\Log\LoggerInterface;
 use WPDesk\View\Renderer\Renderer;
 
 class Template {
 
+    /**
+     * @var LoggerInterface
+     */
+    private LoggerInterface $logger;
+
     /**
      * @var Renderer
      */
-    private $renderer;
+    private Renderer $renderer;
 
     /**
      * @var array
      */
-    private $template_attributes;
+    private array $template_attributes;
 
-    public function __construct( Renderer $renderer, array $template_attributes ) {
+    public function __construct( LoggerInterface $logger, Renderer $renderer, array $template_attributes ) {
+        $this->logger              = $logger;
         $this->renderer            = $renderer;
         $this->template_attributes = wp_parse_args( $template_attributes, $this->get_default_template_attributes() );
     }
@@ -38,7 +48,7 @@ class Template {
     public function css_inline( string $content ): string {
         $styles = $this->renderer->render( 'html/email-styles', $this->template_attributes );
 
-        return StyleInliner::inline( $content, $styles );
+        return $this->convert_css( $content, $styles );
     }
 
     public function get_default_template_attributes(): array {
@@ -53,4 +63,23 @@ class Template {
         ];
     }
 
+    public function convert_css( string $content, string $styles = '' ): string {
+        if ( class_exists( 'DOMDocument' ) ) {
+            try {
+                $css_inliner  = CssInliner::fromHtml( $content )->inlineCss( $styles );
+                $dom_document = $css_inliner->getDomDocument();
+                HtmlPruner::fromDomDocument( $dom_document )->removeElementsWithDisplayNone();
+                $content = CssToAttributeConverter::fromDomDocument( $dom_document )->convertCssToVisualAttributes()->render();
+            } catch ( Exception $e ) {
+                $this->logger->debug( $e->getMessage() );
+
+                return $content;
+            }
+        } else {
+            $content = '<style>' . strip_tags( $styles ) . '</style>' . $content;
+        }
+
+        return $content;
+    }
+
 }
diff --git a/src/WPMailer.php b/src/WPMailer.php
index 9097fc757c20f9c4be16808d4d7d382b49a21ae1..9247ddcfabfc7efa87e541fc8dc2da857d7a0efc 100644
--- a/src/WPMailer.php
+++ b/src/WPMailer.php
@@ -3,6 +3,7 @@
 namespace WPDesk\Library\WPEmail;
 
 use Exception;
+use Psr\Log\LoggerInterface;
 use WP_Error;
 use WPDesk\Library\WPEmail\Abstracts\Email;
 use WPDesk\Library\WPEmail\Abstracts\Mailer;
@@ -14,14 +15,24 @@ use WPDesk\View\Resolver\DirResolver;
 
 class WPMailer implements Mailer {
 
+    /**
+     * @var LoggerInterface
+     */
+    private LoggerInterface $logger;
+
     /**
      * @var Renderer
      */
-    private $renderer;
+    private Renderer $renderer;
+
+    public function __construct( LoggerInterface $logger ) {
+        $this->logger = $logger;
+        $this->init_renderer();
+    }
 
-    public function __construct() {
+    public function init_renderer() {
         $resolver = new ChainResolver();
-        $resolver->appendResolver( new DirResolver( __DIR__ . '/templates' ) );
+        $resolver->appendResolver( new DirResolver( dirname( __DIR__ ) . '/templates' ) );
         $renderer = new SimplePhpRenderer( $resolver );
         $this->set_renderer( $renderer );
     }
@@ -34,7 +45,11 @@ class WPMailer implements Mailer {
         return $this->renderer;
     }
 
-    /** @return void */
+    /**
+     * @param Email $email
+     *
+     * @return void
+     */
     public function send( Email $email ): void {
         $mailer_from = $email->get_from();
         add_filter(
@@ -53,7 +68,7 @@ class WPMailer implements Mailer {
         );
         add_action( 'wp_mail_failed', [ $this, 'catch_error' ] );
 
-        $email_template = new Template( $this->renderer, $email->get_template_attributes() );
+        $email_template = new Template( $this->logger, $this->get_renderer(), $email->get_template_attributes() );
 
         try {
             $success = wp_mail(
@@ -84,4 +99,5 @@ class WPMailer implements Mailer {
         throw MailerException::with_wp_error( $error );
     }
 
+
 }