typechecking, flexibility with permissions. needs testing