diff --git a/demo-one/README.md b/demo-one/README.md
deleted file mode 100644
index b8fd6876..00000000
--- a/demo-one/README.md
+++ /dev/null
@@ -1,67 +0,0 @@
-![Muscle and Fitness Server Social Image](https://raw.githubusercontent.com/johnnymillergh/MaterialLibrary/master/muscle-and-fitness/muscle-and-fitness-server-social-image.png)
-[![GitHub release](https://img.shields.io/github/release/johnnymillergh/muscle-and-fitness-server.svg)](https://github.com/johnnymillergh/muscle-and-fitness-server/releases)
-[![Build Status](https://travis-ci.com/johnnymillergh/muscle-and-fitness-server.svg?branch=master)](https://travis-ci.com/johnnymillergh/muscle-and-fitness-server)
-[![GitHub issues](https://img.shields.io/github/issues/johnnymillergh/muscle-and-fitness-server)](https://github.com/johnnymillergh/muscle-and-fitness-server/issues)
-[![GitHub forks](https://img.shields.io/github/forks/johnnymillergh/muscle-and-fitness-server)](https://github.com/johnnymillergh/muscle-and-fitness-server/network)
-[![GitHub stars](https://img.shields.io/github/stars/johnnymillergh/muscle-and-fitness-server)](https://github.com/johnnymillergh/muscle-and-fitness-server)
-[![GitHub license](https://img.shields.io/github/license/johnnymillergh/muscle-and-fitness-server)](https://github.com/johnnymillergh/muscle-and-fitness-server/blob/master/LICENSE)
-[![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/johnnymillergh/muscle-and-fitness-server.svg?style=popout)](https://github.com/johnnymillergh/muscle-and-fitness-server)
-[![GitHub repo size](https://img.shields.io/github/repo-size/johnnymillergh/muscle-and-fitness-server.svg)](https://github.com/johnnymillergh/muscle-and-fitness-server)
-[![Twitter](https://img.shields.io/twitter/url/https/github.com/johnnymillergh/muscle-and-fitness-server?style=social)](https://twitter.com/intent/tweet?text=Wow:&url=https%3A%2F%2Fgithub.com%2Fjohnnymillergh%2Fmuscle-and-fitness-server)
-
-# Demo One
-
-**Demo One** a sub mudule of Muscle and Fitness Server (M&F).
-
-[Official Docker Image](https://hub.docker.com/r/ijohnnymiller/demo-one-prod)
-
-## Features
-
-Here is the highlights of **Demo One**:
-
-1. Inherited from the most modern and newest Spring frameworks:
-
- `org.springframework.boot:spring-boot-starter-parent` - [![Spring Boot](https://maven-badges.herokuapp.com/maven-central/org.springframework.boot/spring-boot-starter-parent/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.springframework.boot/spring-boot-starter-parent/)
- `org.springframework.cloud:spring-cloud-dependencies` - [![Spring Cloud](https://maven-badges.herokuapp.com/maven-central/org.springframework.cloud/spring-cloud-dependencies/badge.svg)](https://maven-badges.herokuapp.com/maven-central/org.springframework.cloud/spring-cloud-dependencies/)
-
-2. Interact with Demo Two with Spring Cloud OpenFeign.
-
-## Usage
-
-1. Clone or download this project.
-
- ```shell
- $ git clone https://github.com/johnnymillergh/exrx-net-crawler-server.git
- ```
-
-2. Build with newest Intellij IDEA.
-
-3. Click the green triangle to Run.
-
-## Maintainers
-
-[@johnnymillergh](https://github.com/johnnymillergh).
-
-## Contributing
-
-Feel free to dive in! [Open an issue](https://github.com/johnnymillergh/spring-cloud-tutorial/issues/new).
-
-### Contributors
-
-This project exists thanks to all the people who contribute.
-
-- Johnny Miller [[@johnnymillergh](https://github.com/johnnymillergh)]
-- …
-
-
-### Sponsors
-
-Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://become-a-sponsor.org)]
-
-## License
-
-[Apache License](https://github.com/johnnymillergh/exrx-net-crawler-server/blob/master/LICENSE) © Johnny Miller
-
-2020 - Present
-
-
diff --git a/demo-one/pom.xml b/demo-one/pom.xml
deleted file mode 100644
index 280f07d9..00000000
--- a/demo-one/pom.xml
+++ /dev/null
@@ -1,105 +0,0 @@
-
-
- 4.0.0
-
-
- demo-one
- Demo 1
- Demo Project 1 for Spring Cloud microservice.
-
- 11
- 8770
-
-
- com.jmsoftware
- muscle-and-fitness-server
- 0.0.1-SNAPSHOT
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
-
- com.google.cloud.tools
- jib-maven-plugin
- 2.0.0
-
-
-
- compilingPhaseJib
- compile
-
- dockerBuild
-
-
-
-
- packagingPhaseJib
- package
-
- build
-
-
-
-
-
- openjdk:11.0.5-slim
-
-
- docker.io/ijohnnymiller/${project.artifactId}-${envAlias}
-
- ${project.version}
-
-
-
-
- /${project.artifactId}-${envAlias}
-
- -Xmx256m
-
-
- ${port}
-
- USE_CURRENT_TIMESTAMP
-
-
-
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
- org.springframework.cloud
- spring-cloud-starter-netflix-eureka-client
-
-
- de.codecentric
- spring-boot-admin-starter-client
- ${spring-boot-admin.version}
-
-
- org.springframework.cloud
- spring-cloud-starter-zipkin
-
-
-
- com.jmsoftware
- common
- 0.0.1-SNAPSHOT
-
-
-
diff --git a/demo-one/src/main/java/com/jmsoftware/demoone/DemoOneApplication.java b/demo-one/src/main/java/com/jmsoftware/demoone/DemoOneApplication.java
deleted file mode 100644
index a7c7bc9c..00000000
--- a/demo-one/src/main/java/com/jmsoftware/demoone/DemoOneApplication.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package com.jmsoftware.demoone;
-
-import com.jmsoftware.demoone.universal.configuration.ProjectProperty;
-import com.jmsoftware.demoone.universal.configuration.ServerConfiguration;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
-import org.springframework.cloud.openfeign.EnableFeignClients;
-
-import java.time.Duration;
-import java.time.Instant;
-import java.util.TimeZone;
-
-/**
- *
DemoOneApplication
- *
- * Change description here.
- *
- * @author Johnny Miller (鍾俊), email: johnnysviva@outlook.com
- * @date 2/15/20 10:20 PM
- **/
-@Slf4j
-@EnableFeignClients
-@EnableDiscoveryClient
-@SpringBootApplication
-public class DemoOneApplication {
- private static final String LINE_SEPARATOR = System.lineSeparator();
- private static ProjectProperty projectProperty;
- private static ServerConfiguration serverConfiguration;
-
- public DemoOneApplication(ProjectProperty projectProperty, ServerConfiguration serverConfiguration) {
- DemoOneApplication.projectProperty = projectProperty;
- DemoOneApplication.serverConfiguration = serverConfiguration;
- }
-
- public static void main(String[] args) {
- var startInstant = Instant.now();
- SpringApplication.run(DemoOneApplication.class, args);
- var endInstant = Instant.now();
- var duration = Duration.between(startInstant, endInstant);
- log.info("🥳 Congratulations! 🎉");
- log.info("🖥 {}@{} started!", projectProperty.getProjectArtifactId(), projectProperty.getVersion());
- log.info("⚙️ Environment: {} ({})", projectProperty.getEnvironment(), projectProperty.getEnvironmentAlias());
- log.info("⏳ Deployment duration: {} seconds ({} ms)", duration.getSeconds(), duration.toMillis());
- log.info("⏰ App started at {} (timezone - {})", endInstant, TimeZone.getDefault().getDisplayName());
- log.info("{} App running at{} - Local: http://localhost:{}{}/{} - Network: {}/",
- LINE_SEPARATOR, LINE_SEPARATOR, serverConfiguration.getServerPort(), projectProperty.getContextPath(),
- LINE_SEPARATOR, serverConfiguration.getBaseUrl());
- }
-}
diff --git a/demo-one/src/main/java/com/jmsoftware/demoone/math/MathController.java b/demo-one/src/main/java/com/jmsoftware/demoone/math/MathController.java
deleted file mode 100644
index f7480bc5..00000000
--- a/demo-one/src/main/java/com/jmsoftware/demoone/math/MathController.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.jmsoftware.demoone.math;
-
-import com.jmsoftware.common.bean.ResponseBodyBean;
-import com.jmsoftware.demoone.math.domain.AddPayload;
-import com.jmsoftware.demoone.math.domain.SubtractPayload;
-import com.jmsoftware.demoone.math.service.MathService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.RequiredArgsConstructor;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.validation.Valid;
-
-/**
- *
MathController
- *
- * Change description here.
- *
- * @author Johnny Miller (鍾俊), email: johnnysviva@outlook.com
- * @date 2/17/20 8:19 AM
- **/
-@RestController
-@RequestMapping("/math")
-@RequiredArgsConstructor
-@Api(tags = {"Math Controller"})
-public class MathController {
- private final MathService mathService;
-
- @GetMapping("/add")
- @ApiOperation(value = "/add", notes = "Addition operation")
- public ResponseBodyBean add(AddPayload payload) {
- return ResponseBodyBean.ofDataAndMessage(mathService.add(payload.getParameterList()), "Done");
- }
-
- @GetMapping("/subtract")
- @ApiOperation(value = "/subtract", notes = "Subtraction operation")
- public ResponseBodyBean subtract(@Valid SubtractPayload payload) {
- return ResponseBodyBean.ofDataAndMessage(mathService.subtract(payload.getParameter1(), payload.getParameter2()),
- "Done");
- }
-}
diff --git a/demo-one/src/main/java/com/jmsoftware/demoone/math/domain/AddPayload.java b/demo-one/src/main/java/com/jmsoftware/demoone/math/domain/AddPayload.java
deleted file mode 100644
index cc8ab21b..00000000
--- a/demo-one/src/main/java/com/jmsoftware/demoone/math/domain/AddPayload.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package com.jmsoftware.demoone.math.domain;
-
-import lombok.Data;
-
-import javax.validation.constraints.NotEmpty;
-import java.util.List;
-
-/**
- * AddPayload
- *
- * Change description here.
- *
- * @author Johnny Miller (鍾俊), email: johnnysviva@outlook.com
- * @date 2/17/20 8:21 AM
- **/
-@Data
-public class AddPayload {
- @NotEmpty
- private List parameterList;
-}
diff --git a/demo-one/src/main/java/com/jmsoftware/demoone/math/domain/SubtractPayload.java b/demo-one/src/main/java/com/jmsoftware/demoone/math/domain/SubtractPayload.java
deleted file mode 100644
index d79f1f82..00000000
--- a/demo-one/src/main/java/com/jmsoftware/demoone/math/domain/SubtractPayload.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.jmsoftware.demoone.math.domain;
-
-import lombok.Data;
-
-import javax.validation.constraints.NotNull;
-
-/**
- * SubtractPayload
- *
- * Change description here.
- *
- * @author Johnny Miller (鍾俊), email: johnnysviva@outlook.com
- * @date 2/17/20 8:46 AM
- **/
-@Data
-public class SubtractPayload {
- @NotNull
- private Double parameter1;
- @NotNull
- private Double parameter2;
-}
diff --git a/demo-one/src/main/java/com/jmsoftware/demoone/math/service/MathService.java b/demo-one/src/main/java/com/jmsoftware/demoone/math/service/MathService.java
deleted file mode 100644
index 346dcf0a..00000000
--- a/demo-one/src/main/java/com/jmsoftware/demoone/math/service/MathService.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package com.jmsoftware.demoone.math.service;
-
-import java.util.List;
-
-/**
- *
MathService
- *
- * Change description here.
- *
- * @author Johnny Miller (鍾俊), email: johnnysviva@outlook.com
- * @date 2/17/20 8:23 AM
- */
-public interface MathService {
- /**
- * Add double.
- *
- * @param parameterList the parameter list
- * @return the double
- */
- Double add(List parameterList);
-
- /**
- * Subtract double.
- *
- * @param parameter1 the parameter 1
- * @param parameter2 the parameter 2
- * @return the double
- */
- Double subtract(Double parameter1, Double parameter2);
-}
diff --git a/demo-one/src/main/java/com/jmsoftware/demoone/math/service/impl/MathServiceImpl.java b/demo-one/src/main/java/com/jmsoftware/demoone/math/service/impl/MathServiceImpl.java
deleted file mode 100644
index a84f9146..00000000
--- a/demo-one/src/main/java/com/jmsoftware/demoone/math/service/impl/MathServiceImpl.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package com.jmsoftware.demoone.math.service.impl;
-
-import cn.hutool.core.collection.CollectionUtil;
-import cn.hutool.core.util.NumberUtil;
-import cn.hutool.core.util.ObjectUtil;
-import com.jmsoftware.common.exception.BusinessException;
-import com.jmsoftware.demoone.math.service.MathService;
-import com.jmsoftware.demoone.remote.DemoTwoService;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Service;
-
-import java.util.HashMap;
-import java.util.List;
-
-/**
- * MathServiceImpl
- *
- * Change description here.
- *
- * @author Johnny Miller (鍾俊), email: johnnysviva@outlook.com
- * @date 2/17/20 8:32 AM
- **/
-@Slf4j
-@Service
-@RequiredArgsConstructor
-public class MathServiceImpl implements MathService {
- private final DemoTwoService demoTwoService;
-
- @Override
- public Double add(List parameterList) {
- if (CollectionUtil.isEmpty(parameterList)) {
- throw new BusinessException("parameterList is empty!");
- }
- var result = parameterList.stream().mapToDouble(parameter -> parameter).sum();
- log.info("Addition operation done. parameterList: {}, result: {}", parameterList, result);
- this.callRemote();
- return result;
- }
-
- @Override
- public Double subtract(Double parameter1, Double parameter2) {
- if (!ObjectUtil.isAllNotEmpty(parameter1, parameter2)) {
- throw new BusinessException(
- String.format("Subtraction parameter is invalid! parameter1: %s, parameter2: %s",
- parameter1, parameter2));
- }
- return NumberUtil.sub(parameter1, parameter2);
- }
-
- private void callRemote() {
- var params1 = new HashMap(4);
- params1.put("parameter1", 1D);
- params1.put("parameter2", 2D);
- var response1 = demoTwoService.divide(params1);
- log.info("Called demo-two remote service. response: {}", response1);
- }
-}
diff --git a/demo-one/src/main/java/com/jmsoftware/demoone/remote/DemoTwoService.java b/demo-one/src/main/java/com/jmsoftware/demoone/remote/DemoTwoService.java
deleted file mode 100644
index 54d64da0..00000000
--- a/demo-one/src/main/java/com/jmsoftware/demoone/remote/DemoTwoService.java
+++ /dev/null
@@ -1,43 +0,0 @@
-package com.jmsoftware.demoone.remote;
-
-import com.jmsoftware.common.bean.ResponseBodyBean;
-import feign.Headers;
-import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-
-import java.util.Map;
-
-import static org.springframework.web.bind.annotation.RequestMethod.GET;
-
-/**
- * DemoTwoService
- *
- * Change description here.
- *
- * @author Johnny Miller (鍾俊), email: johnnysviva@outlook.com
- * @date 2/17/20 9:42 AM
- */
-@FeignClient(name = "demo-two")
-//@Qualifier(value = "demoTwoService")
-public interface DemoTwoService {
- /**
- * Multiply response body bean.
- *
- * @param params the params
- * @return the response body bean
- */
- @RequestMapping(value = "/math/multiply", method = GET)
- @Headers("Content-Type: application/json")
- ResponseBodyBean multiply(@RequestParam Map params);
-
- /**
- * Divide response body bean.
- *
- * @param params the params
- * @return the response body bean
- */
- @RequestMapping(value = "/math/divide", method = GET)
- @Headers("Content-Type: application/json")
- ResponseBodyBean divide(@RequestParam Map params);
-}
diff --git a/demo-one/src/main/java/com/jmsoftware/demoone/universal/aspect/ExceptionControllerAdvice.java b/demo-one/src/main/java/com/jmsoftware/demoone/universal/aspect/ExceptionControllerAdvice.java
deleted file mode 100644
index 62f968b6..00000000
--- a/demo-one/src/main/java/com/jmsoftware/demoone/universal/aspect/ExceptionControllerAdvice.java
+++ /dev/null
@@ -1,138 +0,0 @@
-package com.jmsoftware.demoone.universal.aspect;
-
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.json.JSONUtil;
-import com.jmsoftware.common.bean.ResponseBodyBean;
-import com.jmsoftware.common.constant.HttpStatus;
-import com.jmsoftware.common.exception.BaseException;
-import com.jmsoftware.common.util.RequestUtil;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.context.support.DefaultMessageSourceResolvable;
-import org.springframework.http.converter.HttpMessageNotReadableException;
-import org.springframework.validation.BindException;
-import org.springframework.web.HttpRequestMethodNotSupportedException;
-import org.springframework.web.bind.MethodArgumentNotValidException;
-import org.springframework.web.bind.annotation.ControllerAdvice;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException;
-import org.springframework.web.servlet.NoHandlerFoundException;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.ConstraintViolationException;
-import java.util.Objects;
-
-/**
- * ExceptionControllerAdvice
- *
- * Exception advice for global controllers.
- *
- * @author Johnny Miller (鍾俊), email: johnnysviva@outlook.com
- * @date 2019-03-02 17:39
- **/
-@Slf4j
-@ControllerAdvice
-public class ExceptionControllerAdvice {
- /**
- *
Exception handler.
- * ATTENTION: In this method, cannot throw any exception.
- *
- * @param request HTTP request
- * @param exception any kinds of exception occurred in controller
- * @return custom exception info
- */
- @ResponseBody
- @ExceptionHandler(value = Exception.class)
- public ResponseBodyBean