Working version (+save3) before HUGE refactoring