stable version, structure done