changed requirements functionality to a simplier system.
merged from origin