The properties and methods need comments and #pragmas