updated with check virtual
initial commit