-refactord quite a bit, seperated concerns to have clearer intent.
-added properties loading