format code first
better way to handle user custom template