implementation of properties using callback methods
added extra property methods to allow both const and non-const setters and getters, updated documentation