optimized but limited to space indention