more general and complete instructions