mapping holes, error handling - to some extent