added smart indent