first pass at map components
merge origin/master