Added properties, some refactor