Almost everything rewriten!