fixed it so that camera can handle levels smaller than screen in addition to larger, also added ability to set a margin even if map is larger than screen