Complex

There is still some bugs to fix or to find. 
Please review it when you have time and test it as much as you can and let me know any issues :D