removed virtual keywords when not needed