add more extendability.. minor api tweaks.
Update .gitignore