add NSObject RuntimeAdditions
use runtime additions instead of property name array
simplify code, comments