This branch contains code that is working as intended. However the methodology behind it might be not correct.