New version

Completely redisigned