add assets submodule
imrpove margin and spacing calculations and avoid using a map

also fixes bug where first tile could not be rendered