Update from Obryen

fix some typos
add declaration modifiers
add avaiability attribute