made some serious api modifications and created gitignore file