add noexcept whereever possible
add support for tileset offset
remove unnecessary copy