switched from private inheritance to containment
added .gitignore