added virtual modifier in properties generation