ref #79 Refactoring
simplify Property interface
add some conditionals for setting limits
ref #79 Improvents
Properties won't notify if not changed
ref #79 Refactoring
rename some template variables
add some const behind methods