new approach to generating layout, move object manipulation to module, create .gitignore file