#28 - add annotation support for properties
added missing license headers