Re-org properties and instance methods, add retain to properties

Added retain to properties because of warnings when the properties are in .h (no warnings when they are in .m but maybe that’s because Xcode just can’t handle that case)