attribute options bugfix, refactoring

swapped order of protected / private functions/properties for
readability
for some reason value isn't being counted as an attribute of input
elements, add extra line just for value
initial test suite commit