add requirement and other things about stracture