added variable and function visibility support. private/public/protected.