add gitignore
introduce unit type