First working enough version