This is first test version. This version has much possibility to change the architecture.