solve simplification, learn magic method