Factory constructor & getters setters.