Master degree project. NOT FINAL!!!