separating snap property, observer, relationships methods into separate files; using signals for update handling.