diff --git a/public/index.html b/public/index.html
index dd1ccfd4cd30a29aaa08b295d99be29cdeb29cf9..8fad1fb04ddd1f9690492d11f6c7d95e200345bb 100644
--- a/public/index.html
+++ b/public/index.html
@@ -23,6 +23,7 @@
   </head>
   <body>
     <noscript>You need to enable JavaScript to run this app.</noscript>
+    <div id="tasklist"></div>
     <div id="root"></div>
     <!--
       This HTML file is a template.
diff --git a/src/App.css b/src/App.css
index b0f08dddfc38b5c27752c025dbfe8113491b93d2..f7911795f61d3f1a6c0d56c5416bc568f0a61eea 100644
--- a/src/App.css
+++ b/src/App.css
@@ -138,3 +138,10 @@ div.login button:hover {
   background-color: darkblue;
   cursor: pointer;
 }
+
+.tasklist{
+  position: absolute;
+  margin-top: 50px;
+  z-index: 2020;
+  background-color: #ffffff80;
+}
diff --git a/src/components/Header.js b/src/components/Header.js
index 70799067bb53691f50038a5c987469665f162b8b..3cb15b02638c2cdddfa9d4481d714d8cfeaa3614 100644
--- a/src/components/Header.js
+++ b/src/components/Header.js
@@ -2,6 +2,7 @@ import React from 'react';
 
 import LoginForm from './LoginForm';
 import RegisterForm from './RegisterForm';
+import TaskListButton from './TaskListButton';
 
 class Header extends React.Component {
   state = {
@@ -78,6 +79,7 @@ class Header extends React.Component {
           )}
           {this.state.username && <button>{this.state.username}</button>}
           <button onClick={this.props.handleLayerChange}>change layer</button>
+          <TaskListButton />
         </div>
         {this.state.register && (
           <RegisterForm
diff --git a/src/components/TaskItem.js b/src/components/TaskItem.js
new file mode 100644
index 0000000000000000000000000000000000000000..7e1c96869686b02aff655e085a57e256e7d2f1d7
--- /dev/null
+++ b/src/components/TaskItem.js
@@ -0,0 +1,15 @@
+import React from 'react';
+
+class TaskItem extends React.Component{
+    render(){
+        return(
+            <p>
+                <label>Name: {this.props.text}</label>
+                <br />
+                <label>Description: {this.props.description}</label>
+            </p>
+        );
+    }
+}
+
+export default TaskItem;
\ No newline at end of file
diff --git a/src/components/TaskList.js b/src/components/TaskList.js
new file mode 100644
index 0000000000000000000000000000000000000000..d67b16cd2ab5c7acfec223977243a675fb57b363
--- /dev/null
+++ b/src/components/TaskList.js
@@ -0,0 +1,18 @@
+import ReactDOM from 'react-dom';
+import React from 'react';
+import TaskItem from './TaskItem';
+
+class TaskList extends React.Component{
+    render(){
+        return ReactDOM.createPortal(
+            <div className='tasklist'>
+                <TaskItem text='asd' description='asudhaiud'/>
+                <TaskItem text='asd2' description='q7213761923769821'/>
+                <TaskItem text='asd3' description='tehtävä3'/>
+            </div>,
+            document.getElementById('tasklist')
+        );
+    }
+}
+
+export default TaskList;
\ No newline at end of file
diff --git a/src/components/TaskListButton.js b/src/components/TaskListButton.js
new file mode 100644
index 0000000000000000000000000000000000000000..4ed49c5072e40b13c67149da1daf6dc1397ed82c
--- /dev/null
+++ b/src/components/TaskListButton.js
@@ -0,0 +1,30 @@
+import React, { Fragment } from 'react';
+import TaskList from './TaskList';
+
+class TaskListButton extends React.Component{
+    constructor(props){
+        super(props);
+        this.state = {
+            open: false
+        }
+
+        this.handleClick = this.handleClick.bind(this);
+    }
+
+    handleClick = (e) => {
+        this.setState({
+            open: !this.state.open
+        });
+    }
+
+    render(){
+        return(
+            <Fragment>
+                <button onClick={this.handleClick}>Tasks</button>
+                {this.state.open && <TaskList />}
+            </Fragment>
+        );
+    }
+}
+
+export default TaskListButton;
\ No newline at end of file