Fixed compile errors and added public interface
make properties function virtual to allow override