Debugged version, runable.