added a way to set properties - and made sure that getProperties returns a immutable map. (probably .. not working in it's current state)