adds viewport support, defaults to map size