closed #1 adding ability to require elements