4th task is mostly implemented. Error handling + insfratructure is remained