added some more functions
add .gitgnore and tidy