added non smart support(bug)